Mulai menggunakan akselerasi GPU untuk ML di WSL
Pembelajaran mesin (ML) menjadi bagian penting dari banyak alur kerja pengembangan. Baik Anda seorang ilmuwan data, insinyur ML, atau memulai perjalanan pembelajaran Anda dengan ML, Subsistem Windows untuk Linux (WSL) menawarkan lingkungan yang bagus untuk menjalankan alat ML yang dipercepat GPU yang paling umum dan populer.
Ada banyak cara berbeda untuk menyiapkan alat-alat ini. Misalnya, NVIDIA CUDA di WSL, TensorFlow-DirectML dan PyTorch-DirectML semuanya menawarkan berbagai cara anda dapat menggunakan GPU untuk ML dengan WSL. Untuk mempelajari selengkapnya tentang alasan memilih satu versus yang lain, lihat Pelatihan ML yang dipercepat GPU.
Panduan ini akan menunjukkan cara menyiapkan:
- NVIDIA CUDA jika Anda memiliki kartu grafis NVIDIA dan menjalankan contoh kontainer kerangka kerja ML
- TensorFlow-DirectML dan PyTorch-DirectML pada kartu grafis AMD, Intel, atau NVIDIA Anda
Prasyarat
- Pastikan Anda menjalankan Windows 11 atau Windows 10, versi 21H2 atau yang lebih tinggi.
- Instal WSL dan siapkan nama pengguna dan kata sandi untuk distribusi Linux Anda.
Menyiapkan NVIDIA CUDA dengan Docker
Instal Docker Desktop atau instal mesin Docker langsung di WSL dengan menjalankan perintah berikut
curl https://get.docker.com | sh
sudo service docker start
Jika Anda menginstal mesin Docker secara langsung, instal NVIDIA Container Toolkit dengan mengikuti langkah-langkah di bawah ini.
Siapkan repositori stabil untuk NVIDIA Container Toolkit dengan menjalankan perintah berikut:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker-keyring.gpg
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-docker-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
Instal paket runtime NVIDIA dan dependensi dengan menjalankan perintah:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Jalankan kontainer dan sampel kerangka kerja pembelajaran mesin.
Untuk menjalankan kontainer kerangka kerja pembelajaran mesin dan mulai menggunakan GPU Anda dengan kontainer NVIDIA NGC TensorFlow ini, masukkan perintah:
docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3
Anda dapat menjalankan sampel model yang telah dilatih sebelumnya yang dibangun ke dalam kontainer ini dengan menjalankan perintah:
cd nvidia-examples/cnn/
python resnet.py --batch_size=64
Cara tambahan untuk mendapatkan penyiapan dan penggunaan NVIDIA CUDA dapat ditemukan di NVIDIA CUDA pada Panduan Pengguna WSL.
Menyiapkan TensorFlow-DirectML atau PyTorch-DirectML
Unduh dan instal driver terbaru dari situs web vendor GPU Anda: AMD, Intel, atau NVIDIA.
Menyiapkan lingkungan Python.
Sebaiknya siapkan lingkungan Python virtual. Ada banyak alat yang dapat Anda gunakan untuk menyiapkan lingkungan Python virtual — untuk instruksi ini, kami akan menggunakan Miniconda Anaconda.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
conda create --name directml python=3.7 -y
conda activate directml
Instal kerangka kerja pembelajaran mesin yang didukung oleh DirectML pilihan Anda.
TensorFlow-DirectML:
pip install tensorflow-directml
PyTorch-DirectML:
sudo apt install libblas3 libomp5 liblapack3
pip install pytorch-directml
Jalankan sampel tambahan cepat dalam sesi Python interaktif untuk TensorFlow-DirectML atau PyTorch-DirectML untuk memastikan semuanya berfungsi.
Jika Anda memiliki pertanyaan atau mengalami masalah, kunjungi repositori DirectML di GitHub.
Beberapa GPU
Jika Anda memiliki beberapa GPU di komputer, Anda juga dapat mengaksesnya di dalam WSL. Namun, Anda hanya akan dapat mengakses satu per satu. Untuk memilih GPU tertentu, atur variabel lingkungan di bawah ini ke nama GPU Anda seperti yang muncul di manajer perangkat:
export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"
Ini akan melakukan kecocokan string, jadi jika Anda mengaturnya ke "NVIDIA" itu akan cocok dengan GPU pertama yang dimulai dengan "NVIDIA".
Sumber Daya Tambahan
Windows Subsystem for Linux