Hyper-V 及 WSL 安裝 Cuda

無論是在 Hyper-V 或是 WSL,安裝 nVidia 的 Cuda 及 cudnn 的步驟是一樣的。

但在開始安裝 Cuda 時,一定要把虛擬機的硬体驅動程式安裝好,請執行 nvidia-smi,看到如下的畫面才可繼續安裝 Cuda。

安裝 Cuda

到官網 https://developer.nvidia.com/cuda-toolkit-archive 查看相關版本的安裝指令。底下是 cuda 12.4.0 的版本,請選擇 Linux/x86_64/WSL-Ubuntu/2.0/deb(local)。底下是官網說明的安裝方式。

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

安裝 cudnn

安裝 cudnn 時, 請勿依官網的方式下載及安裝,只需使用 apt-get install 即可,安裝套件如下。

sudo apt-get -y install nvidia-cudnn

安裝的第一個畫面請按 “OK”

第二個畫面,請選取 “I Agree”,然後再按 “OK”

驗証 GPU 是否啟動

請先在 Python 專案下安裝套件

sudo apt-get install python3.10-venv
mkdir pytest
cd pytest
python3 -m venv .venv
source ./.venv/bin/activate
pip install tensorflow

然後編寫測試程式,vim test.py

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
gpus = tf.config.list_physical_devices(device_type='GPU')
print(gpus)

最後執行,python test.py,得到如下的結果就表示硬体 GPU 啟動了

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

蒙地卡羅測試

執行如下的蒙地卡羅程式,可以看到 GPU 全速在執行。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
batch=100_000_000
epochs=2000
incircle=0
#@tf.function
def cal():
    points=tf.random.uniform([2, batch], dtype=tf.float32)
    dist=tf.sqrt(tf.square(points[0])+tf.square(points[1]))
    count=tf.where(dist<=1).shape[0]
    return count
# cpus = tf.config.list_physical_devices (device_type='CPU')
# tf.config.set_visible_devices (devices=cpus[0]) #只使用 CPU, device_type預設是'CPU'
for e in range(epochs):
    count=cal()
    incircle+=count
    area=incircle /((e+1)*batch)
    pi=area*4
    print(f'epoch:{e+1}, pi={pi}')

上述程式開始跑時,開啟另一個視窗執行如下指令

watch -n 1 nvidia-smi

就可以看到顯卡的功耗到了 355瓦

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *