Azure NVIDIA GPU Destekli Virtual Machine Kurulumu

Egemen Gulpinar
4 min readAug 18, 2024

--

Merhabalar, bu yazıda Azure üzerinde GPU destekli virtual machine kurulumunu anlatıyor olacağım. Bu alanda pek net bir kaynak ve bilgi bulamadığım ve ekran kartının CUDA versiyon farklılıkları nedeniyle sorunlar yaşamamla bir rehber niteliğinde yazı hazırlamak istedim. Keyifli okumalar.

Azure VM Oluşturma ve Seçimi

Bu sayfadan uygun adımları takip ederek GPU destekli virtual machineyi en uygun fiyata bulmanızı sağlayabilirsiniz. Ancak bu, sizin subscription planınıza dahil olmayabilir ve quota talebinde bulunmanız gerekebilir. Aşağıda buna benzer bir örnek göreceksiniz. — Azure VM Select

Ve “region” kısmında ise, hepsini seçtiğinizde sonuçlar daha çok olacaktır. Yoğunluktan dolayı kimi zaman spesifik lokasyonda bulamayabilirsiniz.

Sonuç olarak aşağıdaki virtual machine görüntülendi.

Bu Instance’ın birebir aynısını bulmak mümkün olmayabiliyor, quota talebinde bulunduğunuzda farklı bir Instance verilebilir. Ben A10 yerine T4 Instance’ını elde ettim. Bu tamamen Azure tarafına kalmış bir durum.

Örneğin aşağıdaki gibi Instance seçmeye çalıştığımda quota yetersiz olduğundan talepte bulunmamı istiyor.

Azure Quota Yetersizliği

Çok aşırı bir talepte bulunmadığınız sürece, 1 - 2 gün içerisinde yanıt geliyor ve genellikle talep olumlu karşılanıp quota hakkı tanımlanıyor ilgili hesaba. Aşağıdaki mevcut ayarlamalar ile quotanız da varsa GPU destekli virtual machine oluşturabilirsiniz.

GPU Ayarları ve NVIDIA CUDA Driver Yüklenmesi

Bu kısım adım adım anlatılacak, yanlış bir adım bir çok şeyin tekrarlanmasına ve zaman kaybına yol açabilir. Azure’daki VM Instance’ı tüketici makinaları gibi olmadığından farklı driver ve ayarlamalar yapılması gerekmekte.

Ubuntu’da otomatik bir şekilde driver yüklemesi yaptığınızda versiyon çakışmaları yaşayabiliyorsunuz buda programın düzgün çalışmamasına yol açıyor. Nihai amaç, docker’da GPU desteğini aktif edip ilgili container’ın sorunsuz çalışmasını sağlayabilmek. Örnek olması açısından whisper large-v3 modelini deployladım.

Öncelikle SSH ile bağlanıp cihazda varsa eski sürüm veya bağımlılıkları kaldırmakla başlayalım.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get --purge remove "*nvidia*"
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /usr/local/cuda*

Gerekli bağımlılıkları yükleyip güncelleyelim.

sudo apt-get install build-essential
sudo apt-get update
sudo apt install ubuntu-drivers-common

Aşağıdaki komutu çalıştırdıktan sonra uyumlu driverlar listelenecek. Burada spesifik olarak belirtip yükleyebilir veya otomatik seçilmesini sağlayabilirsiniz. Ben manuel olarak yüklemeyi tercih ettim.

sudo ubuntu-drivers devices
sudo apt install nvidia-driver-535-server 

“server” olan sürümün yüklemesi önemli. Azure Linux makinelerinde sorun yaşamadığım sürüm bu olmuştu. Eğer sizde olursa, “distro” versiyonunu yükleyebilirsiniz. Ancak tekrar yükleme yapmadan önce ilk koddaki gibi herşeyi sildiğinizden emin olun. Son olarak, reboot edip yüklemesini sağlayalım.

sudo reboot

Daha sonrasında CUDA Toolkit yüklemesi yapacağız. Aşağıdaki linkten uygun linux versiyonu seçip yüklemeyi adım adım yapın.

Uygun CUDA Toolkit yüklemesi yapabilmek için, öncelikle hangi versiyonun uygun olduğunu bulmanız gerekmekte. Ben bunu aşağıdaki şekilde yaptım.

nvidia-smi
#(535.xx)

Daha sonra, Driver Version : 535.xxx olan kısımdan yola çıkarak aşağıdaki tabloyu baz aldım.

Buna göre, 12.2 yüklemem en uygun olanı, devamında CUDA Toolkit 12.2 versiyonunu yükledim. Bu sizde farklı olabilir, uyumlu olan en son sürümü yüklemenizi tavsiye ederim.

İlgili sitede adımları takip ettiğinizde, aşağıdakileri sırayla yapmanız gerekmekte.

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda

En sonunda yüklemede, aşağıdaki gibi uyumlu versiyonlar görünecektir. Eğer herhangi bir komutta(nvcc ve nvidia-smi) hata alırsanız, uyum sorunu yaşadığınızın bir göstergesi anlamına gelir.

Bu şekilde görünüyorsa başarıyla tamamladığınız anlamına gelir, Docker’da GPU destekli bir container çalıştırmak ve whisper large-v3 modelini CUDA hızlandırması ile koşturmak için, şu yazıma göz atabilirsiniz.

--

--

Egemen Gulpinar

I enjoy writing articles in Turkish and English languages, on everything I have been working on and experienced.