Installing, Configuring, and Benchmarking Hashcat on a 6GPU NVIDIA 1080TI Rig
Ubuntu Server 18.04 has been installed, cards connected, and these directions pickup at your very first login
Login
sudo bash
apt-get update && apt-get upgrade
apt-get dist-upgrade
add-apt-repository universe
apt-get install gcc libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev screen
lspci | grep -i nvidia
You should see all of your video cards listed here
apt-get install linux-headers-$(uname -r)
mkdir /installs && mkdir /installs/drivers/ && mkdir /installs/drivers/intel && mkdir /installs/drivers/nvidia && cd /installs/drivers/nvidia
sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt update && apt-get install nvidia-driver-410
reboot
Login
sudo bash
nvidia-smi
You will now see your NVidia cards listed
cd /installs/drivers/nvidia
wget https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux
mv cuda_10.0.130_410.48_linux cuda_10.0.130_410.48_linux.run
chmod +x cuda_10.0.130_410.48_linux.run
screen sh cuda_10.0.130_410.48_linux.run
Select No to the driver update
Yes to the toolkit install
cd /home/yourusernamegoeshere/ && nano .bashrc
Add this to the end of the file:
# add cuda tools to command path
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH
nano /etc/ld.so.conf.d/cuda-10.0-x86_64
Put only one line:
/usr/local/cuda-10.0/lib64
CTRL X to Save and Exit the file
ldconfig
apt-get install hashcat
Now for the OpenCL CPU drivers..I am using an Intel Celeron Processor, so these steps are needed for Hashcat to work properly. These are not needed for the GPUs
sudo apt-get install ccache flex bison clang-4.0 cmake g++ git patch zlib1g-dev autoconf xutils-dev libtool pkg-config libpciaccess-dev
mkdir -p /installs/drivers/intel-compute-runtime/workspace
cd /installs/drivers/intel-compute-runtime/workspace
git clone -b release_40 https://github.com/llvm-mirror/clang clang_source
git clone https://github.com/intel/opencl-clang common_clang
git clone https://github.com/intel/llvm-patches llvm_patches
git clone -b release_40 https://github.com/llvm-mirror/llvm llvm_source
git clone https://github.com/intel/gmmlib gmmlib
git clone https://github.com/intel/intel-graphics-compiler igc
git clone https://github.com/KhronosGroup/OpenCL-Headers khronos
git clone https://github.com/intel/compute-runtime neo
ln -s khronos opencl_headers
mkdir -p /installs/drivers/intel-compute-runtime/workspace/build_igc
cd /installs/drivers/intel-compute-runtime/workspace/build_igc
cmake -DIGC_OPTION__OUTPUT_DIR=../igc-install/Release \
-DCMAKE_BUILD_TYPE=Release -DIGC_OPTION__ARCHITECTURE_TARGET=Linux64 \
../igc/IGC
time make -j$(nproc) VERBOSE=1
Now you can generate Debian archives for installation:
time make -j$(nproc) package VERBOSE=1
Install:
sudo dpkg -i *.deb
nano /etc/environment
To the end of the first line (PATH), add the following:
:/usr/local/cuda/bin:/usr/lib/llvm-4.0/bin
Save and Exit
source /etc/environment
mkdir -p /installs/drivers/intel-compute-runtime/workspace/build_icr
cd /installs/drivers/intel-compute-runtime/workspace/build_icr
cmake -DBUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release ../neo
time make -j$(nproc) package VERBOSE=1
sudo dpkg -i *.deb
apt-get install clinfo
clinfo
Now you should see that ICD is installed
And finally you can run
hashcat -b
That’s it! Thanks for reading!