Bagikan melalui


Menyiapkan paket khusus GPU di Linux

Bagian ini menguraikan paket yang perlu Anda siapkan agar CNTK dapat memanfaatkan GPU NVIDIA.

Memeriksa kompatibilitas GPU Anda dan mendapatkan driver terbaru

Anda memerlukan kartu grafis yang kompatibel dengan CUDA yang tersedia untuk menggunakan kemampuan GPU CNTK. Anda dapat memeriksa apakah kartu Anda kompatibel dengan CUDA di sini dan di sini (untuk kartu yang lebih lama). Kemampuan Komputasi (CC) kartu GPU Anda harus 3.0 atau lebih.

Jika Anda memiliki kartu yang diperlukan, instal driver terbaru:

  • Pilih kartu Anda dan unduh paket driver dari sini (biasanya tersedia sebagai .run file)

  • Jika manajer X Windows Anda berjalan, penginstalan driver kemungkinan akan gagal. Buka sesi terminal jarak jauh ke komputer Anda dan hentikan manajer X Windows. Lihat dokumentasi platform Anda untuk perintah yang tepat.

Contoh: untuk Ubuntu, gunakan perintah berikut (dengan asumsi lightdm adalah manajer X Windows Anda):

sudo stop lightdm
  • Instal driver seperti dalam contoh di bawah ini (perhatikan bahwa nama file mungkin berbeda untuk sistem Anda):
sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run
sudo ./NVIDIA-Linux-x86_64-384.111.run

Sebaiknya terima opsi penginstalan default

Perhatikan bahwa program penginstalan driver mungkin mengeluh tentang driver kernel nouveau. Lihat dokumentasi platform Anda untuk petunjuk menonaktifkannya. Untuk Ubuntu, Anda dapat menggunakan serangkaian instruksi ini.

  • Jika berhenti selama langkah-langkah di atas, mulai X Windows manager. Lihat dokumentasi platform Anda untuk perintah yang tepat.

Contoh: untuk Ubuntu, gunakan perintah berikut (dalam kasus lightdm sebagai manajer X Windows Anda):

sudo start lightdm

CUDA 9

Prosedur di bawah ini menjelaskan cara menginstal CUDA menggunakan .run distribusi file. Anda juga dapat menggunakan DEB atau RPM mengemas penginstalan. Anda akan menemukan paket untuk sistem Anda di halaman Unduhan NVIDIA CUDA 9.0 dan instruksi penginstalan dalam Dokumentasi CUDA Online.

Unduh dan instal Toolkit NVIDIA CUDA 9.0:

  • .run Temukan file untuk platform Anda di sini dan unduh.

  • Jika manajer X Windows Anda berjalan, penginstalan kemungkinan akan gagal. Buka sesi terminal jarak jauh ke komputer Anda dan hentikan manajer X Windows. Lihat dokumentasi platform Anda untuk perintah yang tepat.

Contoh: untuk Ubuntu gunakan perintah berikut (dalam kasus lightdm sebagai manajer X Windows Anda):

sudo stop lightdm
  • Instal TOOLKit CUDA 9.0 (perhatikan bahwa .run nama file mungkin berbeda untuk sistem Anda):
chmod +x ./cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run

Ketika diminta oleh alat penginstal:

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit:

Pilih no jika Anda telah menginstal driver terbaru dengan melakukan langkah-langkah di bagian sebelumnya. Jika Anda belum melakukannya, pilih yes, tetapi kami sangat menyarankan untuk memperbarui ke driver terbaru setelah menginstal toolkit CUDA.

Jika Anda menolak penginstalan driver dari paket CUDA 9.0, Anda akan mendapatkan peringatan berikut di akhir penginstalan:

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Abaikan peringatan ini.

Jika berhenti selama langkah-langkah di atas, mulai X Windows manager. Lihat dokumentasi platform Anda untuk perintah yang tepat.

Contoh: untuk Ubuntu gunakan perintah berikut (dalam kasus lightdm sebagai manajer X Windows Anda):

sudo start lightdm

Tambahkan variabel lingkungan berikut ke sesi Anda saat ini dan profil Anda .bashrc (jika Anda memodifikasi jalur default selama penginstalan CUDA, ubah nilai di bawah ini):

export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

Langkah selanjutnya bersifat opsional. Anda dapat melompat lebih jauh ke bagian berikutnya.

OPSIONAL. Memverifikasi penginstalan CUDA 9.0

Anda dapat memverifikasi penginstalan CUDA Anda dengan mengkompilasi sampel CUDA (kami menganggap jalur default digunakan selama penginstalan CUDA). Perhatikan bahwa membangun semua sampel adalah operasi yang panjang:

cd ~/NVIDIA_CUDA-9.0_Samples/
make

Setelah utilitas pemanggilan deviceQuery build berhasil:

~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery/deviceQuery

Jika semuanya berfungsi dengan baik, Anda harus mendapatkan output yang mirip dengan yang di bawah ini:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 960"
  CUDA Driver Version / Runtime Version          9.0 / 9.0
  CUDA Capability Major/Minor version number:    5.2
  Total amount of global memory:                 2025 MBytes (2123235328 bytes)
  ( 8) Multiprocessors, (128) CUDA Cores/MP:     1024 CUDA Cores
  GPU Max Clock rate:                            1253 MHz (1.25 GHz)
  Memory Clock rate:                             3505 Mhz
  Memory Bus Width:                              128-bit
  L2 Cache Size:                                 1048576 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 3 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 9.0, NumDevs = 1, Device0 = GeForce GTX 960
Result = PASS

Kit Penyebaran GPU

Mulai dari CUDA versi 8, GPU Deployment Kit adalah bagian dari paket CUDA dan tidak lagi diperlukan untuk diinstal secara terpisah.

cuDNN

Instal pustaka NVIDIA CUDA Deep Neural Network (cuDNN).

Penting

Jika sebelumnya Anda menginstal cuDNN untuk versi yang lebih lama, pastikan Anda meningkatkan ke versi yang kompatibel dengan CUDA 9.0

Penting

Instal cuDNN menggunakan versi dan jalur target yang tepat seperti yang ditentukan di bawah ini. Ini diperlukan karena diharapkan oleh program konfigurasi build CNTK.

  • Gunakan perintah berikut:
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7_7.0.4.31-1+cuda9.0_amd64.deb

OPSIONAL. NCCL

Pustaka NCCL NVIDIA menyediakan primitif yang dioptimalkan untuk komunikasi multi-GPU kolektif di Linux. CNTK dapat memanfaatkan primitif yang dipercepat ini untuk pekerjaan paralel yang berjalan pada satu host (cf. di sini untuk pengenalan pelatihan paralel dengan CNTK).

Silakan ikuti petunjuk di sini untuk mengunduh pustaka NVIDIA NCCL.

wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl-dev_2.1.2-1+cuda9.0_amd64.deb
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl2_2.1.2-1+cuda9.0_amd64.deb
sudo dpkg -i libnccl2_2.1.2-1+cuda9.0_amd64.deb libnccl-dev_2.1.2-1+cuda9.0_amd64.deb

Kemudian, gunakan opsi --with-nccl=<path> konfigurasi CNTK untuk mengaktifkan pembangunan dengan NVIDIA NCCL. Misalnya, jika NCCL diinstal di folder selain folder /usrdefault , gunakan configure --with-nccl=<nccl install folder> (ditambah opsi tambahan) untuk membangun dengan dukungan NVIDIA NCCL.

Catatan

Saat ini, dukungan CNTK untuk NVIDIA NCCL terbatas pada SGD paralel data dengan bit gradien 32/64, menggunakan biner CNTK. Dukungan untuk metode paralelisasi tambahan dan CNTK v2 akan ditambahkan di masa mendatang. Rilis resmi CNTK dibangun dengan NCCL diaktifkan. Semua linux Python wheels sudah termasuk biner NCCL. Untuk pengguna Brainscript di Linux, NCCL perlu diinstal. Jika pengguna lebih suka tidak menggunakan NCCL, silakan bangun CNTK dari sumber. Perhatikan bahwa mengonfigurasi secara otomatis mendeteksi NCCL yang diinstal di bawah /usr, jadi silakan hapus instalan NCCL sebelum build.

CUB

Jika Anda menginstal CNTK untuk Python, Anda dapat melompat ke bagian berikutnya. Jika tidak, lanjutkan lebih jauh.

Dapatkan dan instal NVIDIA CUB menggunakan perintah di bawah ini.

Penting

Instal NVIDIA CUB menggunakan versi dan jalur target yang tepat seperti yang ditentukan di bawah ini. Ini diperlukan karena diharapkan oleh program konfigurasi build CNTK.

Gunakan perintah berikut:

wget https://github.com/NVlabs/cub/archive/1.7.4.zip
unzip ./1.7.4.zip
sudo cp -r cub-1.7.4 /usr/local