Linux RPMs

For Linux machines that will not use the Docker image or DEB, an RPM installation is available for the following environments:

  • x86_64 RHEL 7 / RHEL 8, CentOS 7, or SLES 12

The installation steps assume that you have a license key for Driverless AI. For information on how to obtain a license key for Driverless AI, visit https://www.h2o.ai/products/h2o-driverless-ai/. Once obtained, you will be prompted to paste the license key into the Driverless AI UI when you first log in, or you can save it as a .sig file and place it in the license folder that you will create during the installation process.

Environment

Operating System

Min Mem

RHEL with GPUs

64 GB

RHEL with CPUs

64 GB

CentOS 7 with GPUS

64 GB

CentOS 7 with CPUs

64 GB

SLES 12 with GPUs

64 GB

SLES 12 with CPUs

64 GB

Requirements

  • RedHat 7/RedHat 8/CentOS 7/SLES 12

  • CUDA 10 or later with NVIDIA drivers >= 410 (GPU only)

  • cuDNN >=7.2.1 (Required for TensorFlow support on GPUs.)

  • OpenCL (Required for LightGBM support on GPUs.)

  • Driverless AI RPM, available from https://www.h2o.ai/download/

About the Install

  • The ‘dai’ service user is created locally (in /etc/passwd) if it is not found by ‘getent passwd’. You can override the user by providing the DAI_USER environment variable during rpm or dpkg installation.

  • The ‘dai’ service group is created locally (in /etc/group) if it is not found by ‘getent group’. You can override the group by providing the DAI_GROUP environment variable during rpm or dpkg installation.

  • Configuration files are put in /etc/dai and owned by the ‘root’ user:

    • /etc/dai/config.toml: Driverless AI config file (See Using the config.toml File section for details)

    • /etc/dai/User.conf: Systemd config file specifying the service user

    • /etc/dai/Group.conf: Systemd config file specifying the service group

    • /etc/dai/EnvironmentFile.conf: Systemd config file specifying (optional) environment variable overrides

  • Software files are put in /opt/h2oai/dai and owned by the ‘root’ user

  • The following directories are owned by the service user so they can be updated by the running software:

    • /opt/h2oai/dai/home: The application’s home directory (license key files are stored here)

    • /opt/h2oai/dai/tmp: Experiments and imported data are stored here

    • /opt/h2oai/dai/log: Log files go here if you are not using systemd (if you are using systemd, then the use the standard journalctl tool)

  • By default, Driverless AI looks for a license key in /opt/h2oai/dai/home/.driverlessai/license.sig. If you are installing Driverless AI programmatically, you can copy a license key file to that location. If no license key is found, the application will interactively guide you to add one from the Web UI.

  • systemd unit files are put in /usr/lib/systemd/system

  • Symbolic links to the configuration files in /etc/dai files are put in /etc/systemd/system

If your environment is running an operational systemd, that is the preferred way to manage Driverless AI. The package installs the following systemd services and a wrapper service:

  • dai: Wrapper service that starts/stops the other three services

  • dai-dai: Main Driverless AI process

  • dai-h2o: H2O-3 helper process used by Driverless AI

  • dai-procsy: Procsy helper process used by Driverless AI

  • dai-vis-server: Visualization server helper process used by Driverless AI

If you don’t have systemd, you can also use the provided run script to start Driverless AI.

Installing Driverless AI

Run the following command to install the Driverless AI RPM. Replace VERSION with your specific version.

# Install Driverless AI.
sudo rpm -i dai-VERSION.rpm

Notes:

  • When installing on RHEL 8, add the --nodigest option to the preceding command. Replace VERSION with your specific version. This is not required for RHEL 8.1 / 8.2.

sudo rpm -i --nodigest dai-VERSION.rpm
  • For RHEL 7.5, it is necessary to upgrade library glib2:

sudo yum upgrade glib2
  • By default, the Driverless AI processes are owned by the ‘dai’ userand ‘dai’ group. You can optionally specify a different service user and group as shown below. Replace <myuser> and <mygroup> as appropriate.

# Temporarily specify service user and group when installing Driverless AI.
# rpm saves these for systemd in the /etc/dai/User.conf and /etc/dai/Group.conf files.
sudo DAI_USER=myuser DAI_GROUP=mygroup rpm -i dai-VERSION.rpm

You may now optionally make changes to /etc/dai/config.toml.

Starting Driverless AI

If you have systemd (preferred):

# Start Driverless AI.
sudo systemctl start dai

If you do not have systemd:

# Start Driverless AI.
sudo -H -u dai /opt/h2oai/dai/run-dai.sh

Starting NVIDIA Persistence Mode

If you have NVIDIA GPUs, you must run the following NVIDIA command. This command needs to be run every reboot. For more information: http://docs.nvidia.com/deploy/driver-persistence/index.html.

sudo nvidia-persistenced --persistence-mode

Installing CUDA with NVIDIA drivers

Before installing CUDA you will need to make sure you have already installed wget, gcc, make, and elfutils-libelf-devel:

sudo yum -y install wget
sudo yum -y install gcc
sudo yum -y install make
sudo yum -y install elfutils-libelf-devel

Next, visit https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html for instructions on installing CUDA. It is recommended that you use the runfile method of installation.

If prompted to select what tools you would like to install, select Drivers only.

Installing OpenCL

OpenCL is required in order to run LightGBM on GPUs. Run the following for Centos7/RH7 based systems using yum and x86.

sudo yum -y clean all
sudo yum -y makecache
sudo yum -y update
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/c/clinfo-2.1.17.02.09-1.el7.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/o/ocl-icd-2.2.12-1.el7.x86_64.rpm
sudo rpm -if ocl-icd-2.2.12-1.el7.x86_64.rpm
sudo rpm -if clinfo-2.1.17.02.09-1.el7.x86_64.rpm
clinfo

mkdir -p /etc/OpenCL/vendors && \
    echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd

Installing cuDNN

cuDNN is required for TensorFlow support on GPUs. See https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html and follow the instructions for installing the latest cuDNN.

Note: As of this writing, there is an error in the above instructions - the command sudo yum install libcudnn7-dev will fail because the libcudnn7-dev is a package only available on Debian based distros. You must instead run sudo yum install libcudnn7-devel.

Looking at Driverless AI log files

If you have systemd (preferred):

sudo systemctl status dai-dai
sudo systemctl status dai-h2o
sudo systemctl status dai-procsy
sudo systemctl status dai-vis-server
sudo journalctl -u dai-dai
sudo journalctl -u dai-h2o
sudo journalctl -u dai-procsy
sudo journalctl -u dai-vis-server

If you do not have systemd:

sudo less /opt/h2oai/dai/log/dai.log
sudo less /opt/h2oai/dai/log/h2o.log
sudo less /opt/h2oai/dai/log/procsy.log
sudo less /opt/h2oai/dai/log/vis-server.log

Stopping Driverless AI

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

Upgrading Driverless AI

WARNINGS:

  • This release deprecates experiments and MLI models from 1.7.0 and earlier.

  • Experiments, MLIs, and MOJOs reside in the Driverless AI tmp directory and are not automatically upgraded when Driverless AI is upgraded. We recommend you take the following steps before upgrading.

    • Build MLI models before upgrading.

    • Build MOJO pipelines before upgrading.

    • Stop Driverless AI and make a backup of your Driverless AI tmp directory before upgrading.

If you did not build MLI on a model before upgrading Driverless AI, then you will not be able to view MLI on that model after upgrading. Before upgrading, be sure to run MLI jobs on models that you want to continue to interpret in future releases. If that MLI job appears in the list of Interpreted Models in your current version, then it will be retained after upgrading.

If you did not build a MOJO pipeline on a model before upgrading Driverless AI, then you will not be able to build a MOJO pipeline on that model after upgrading. Before upgrading, be sure to build MOJO pipelines on all desired models and then back up your Driverless AI tmp directory.

The upgrade process inherits the service user and group from /etc/dai/User.conf and /etc/dai/Group.conf. You do not need to manually specify the DAI_USER or DAI_GROUP environment variables during an upgrade.

Requirements

As of 1.7.0, CUDA 9 is no longer supported. Your host environment must have CUDA 10.0 or later with NVIDIA drivers >= 410 installed (GPU only). Driverless AI ships with its own CUDA libraries, but the driver must exist in the host environment. Go to https://www.nvidia.com/Download/index.aspx to get the latest NVIDIA Tesla V/P/K series driver.

Upgrade Steps

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Make a backup of /opt/h2oai/dai/tmp directory at this time.

# Upgrade and restart.
sudo rpm -U dai-NEWVERSION.rpm
sudo systemctl daemon-reload
sudo systemctl start dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Make a backup of /opt/h2oai/dai/tmp directory at this time.

# Upgrade and restart.
sudo rpm -U dai-NEWVERSION.rpm
sudo -H -u dai /opt/h2oai/dai/run-dai.sh

Uninstalling Driverless AI

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Uninstall.
sudo rpm -e dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Uninstall.
sudo rpm -e dai

CAUTION! At this point you can optionally completely remove all remaining files, including the database. (This cannot be undone.)

sudo rm -rf /opt/h2oai/dai
sudo rm -rf /etc/dai

Note: The UID and GID are not removed during the uninstall process. These can be removed with userdel and usergroup. However, we DO NOT recommend removing the UID and GID if you plan to re-install Driverless AI. If you remove the UID and GID and then reinstall Driverless AI, the UID and GID will likely be re-assigned to a different (unrelated) user/group in the future; this may cause confusion if there are any remaining files on the filesystem referring to the deleted user or group.