Selamlar herkese,
Bu forumun ilk kapsamlı iş istasyonu NVLINK postuna hoş geldiniz .
Kendi AI amaçlarım için sistemi ve deneyimlerimi size aktaracağım. Siz bu deneyimlere bakarak nerede sorun olabileceğini belirtebilirsiniz. Buradaki kimsenin bu derinlikte çalıştıgını düşünmüyorum ama ümidim de var. Sonuçta Levon abinin mekanı burası. Ayrıca AI alanında takım arkadaşı da aranır diyelim.
Kullandığım NVLINK :
Game Part :
Sadece RDR2'de deneme fırsatım oldu.
RDR2 de tek GPU'ya göre FPS %32 artış yaşandı. Ama çözünürlük 1600x900'dü. Çünkü kullanmış olduğum 4k monitorü teknik servise verdim. GPU'ları kullanım oranı %70-85 arası gidip geliyordu.
Bana darboğaz varmış veya çok düşük performansta kalmıs gıbı geldı.
Code Part:
Durumu iyi anlamak adına ve Sistemi zorlamak için ve performansı ölçmek içi kendimce ResNet-152 modeli ile testler yapıyorum. Aşağıda ona ait bir zip bulabilirsiniz.
epoch: verinin kaç defa tamamını öğrenmesi durumudur. epoch 10 ise verinin 10 defa üzerinden geçmiştir.
batch size : veri kümesidir. değer 512 ise 512 resimi tek seferde gpu'ya yollar gpu işler sonrasında yeni bir batch grubu alır ( bir sonraki 512 resmi alır). Yüksek miktarda vram kullanır.
BU KISIM NVLINK OLMADAN VEYA SLI KAPALI IKEN ELDE ETTIGIM SONUCLAR:
512 Batch - Single vs 2 GPU:
Tek 3090 üzerinde 512 Batch Size ile 1141 saniye iken deneme eğitimi, NVLINK olmadan 2 3090 822 saniyede bitiyor. Bu %40 Dolayların da bir hız artışı demektir. Tek GPU'da 1024 batch başlatılamadığı için 512 üzerinde test ettim. Ayrıca VRAM'lerin eşit bölüştürüldüğümü, limitin 48 GB olduğunu görüyorum. 2 GPU kullanıldığında 21 Derece fark olması normal değildir diye varsayıyorum. Peak değerileri diyorum elbette.
2 GPU 1024 Batch - 2 GPU 512 Batch:
Her 2 Durumda da VRAM'ler bölüşülmekte. 21-22 Derece fark bulunmakta. Peak değerileri diyorum elbette. İşin ikonik yanı ise Batch 1024 ile 512 arasında fazla bir fark olmaması ( %12 civarı)
NVLINK ILE SONUCLAR:
1024 batch de 2 vramde dolarken 512de yarılanıyor 2side. 512 batch ile nvlink var ve yokken arada neredeyse 100 saniye fark olusuyor.
1024 batch oldugunda ise nvlink 50 sanıye gerıde kalıyor.
NVLINK'i aktif ettim control panelden ve studıo drıver kurdum. Daha nasıl boostlayabılırım bılmıyorum. Ayrıca tüm değerleri tek tek yazamam maalesef. Lütfen zipteki dosyları nvlink var ve yok seklınde yan yana acıp kıyaslayınız. Sorun olup olmadıgını merak edıyorum ki var gibi gozukuyor daha performanslı olması gerekırdı.
zip dosyasında yer almayan bır sonuc daha var
slı açıkken 1024 batch
epoch 10 ' da 706sn
epoch 30 'da 2108 sn
slı kapalı 1024 batch de
epoch 10 'de 863 sn
epoch 30'de 2120 sn sürdü.
SLI acıkken ılk epoch 10da ekti göstermesine rağmen eğitim süresi uzadıkca daha efektıf hale gelmesı gerekırken neden daha az verımlı hale geldıgını merak edıyorum. Sadece mantık arıyorum ve bulamıyorum. lütfen bana analtınız.
Ayrıca daha önceden attıgım su sorulara yanıt beklemedeyim.
1) NVLINK Bellekleri havuzlamak dışında başka bir görevi var mıdır?
2) Bir Forumda "NVLINK GPU ve Ramler'i birlikte havuzlar" tarzı bir yorum gördüm ne kadar doğrudur? (Doğruysa Sistemde ki 64 GB RAM ile 48 GB VRAM birleşebilir mi demek oluyor bu ?)
3) NVLINK hizmetini icra ederken ne kadar sistemden kaynak kullanacak? RAM, CPU Core , Watt olarak düşünülebilir.
4) NVLINK Bağlı olmasına rağmen GPU'ları birbirinden bağımsız amaçlar için kullanabilecek miyim? Örneğin, 1 tanesi ile oyun oynayıp yayın açmayı diğeri ile AI eğitimine devam edebilecek miyim? Cveap evet ise ki öyle olmalı, GPU'yu nasıl seçeceğim? Ayarlardan graphicsden spesifik GPU seçilmiyor nvlink açık olunca sanırsam herşeyi birlikte yapmalıyım? Yoksa her seferinde devre dısımı bırakmam gerekecek.?
Ayrıca şöyle bir yazı okudum ne kadar doğru ne kadar yanlış bilmiyorum. "Batch size X dediğin zaman her GPU X batch alır total batch 2X olur" dedi. Ama 512 batch verdıgımde tek gpuya tüm memory dolar iken, 1024 batch verdiğimde 2 gpuya ( teori doğruysa total batch 2048 yapar) memory anca doluyor. Bu işi anlamlandıramadım. Ayrıca nvlink olmadan önceden de 1024 batch verebılıyordum.
Doğruysa bile 2 gpuda 256 batch size, 881 sn sürdü. tek gpuda 512 1141 sn sürdü. teori doğruysa % 70 üstü br artıs var. Yinede % 80-85 üstü bir hızı yakalayamıyoruz ki her benchmarkda % 90 üstü bir performans var. Am teorinin o kadarda doğru olduğunu düşünmüyorum.
Ayrıca nvidia-smi aracılığıyla hız 14GB/sn gözüküyor. Ama İnternet üzerinde 100'ü geçen paylaşımlar gördüm. Bende neden 14 halen anlamıs değilim.
Satın aldığım şirket openzeka ve nvidia foruma yazmama rağmen bir yanıt gelmedi. Yapılacaklar arasında ubuntu kurup denemek dısında bir seçenek kalmadı gibi görünüyor.
Lütfen bu işten anlayan biri aşağıdaki sonucları yan yana acarak bakabilirse ve bana öyle dönerse cok iyi olur. Sizde hak verırsınız kı tum bu yazıyı yazmak ve fotoları cekmek cıdden cok uzun zamanımı aldı. Umarım yanıt verebilecek biri çıkar diyelim.
Bu forumun ilk kapsamlı iş istasyonu NVLINK postuna hoş geldiniz .
Kendi AI amaçlarım için sistemi ve deneyimlerimi size aktaracağım. Siz bu deneyimlere bakarak nerede sorun olabileceğini belirtebilirsiniz. Buradaki kimsenin bu derinlikte çalıştıgını düşünmüyorum ama ümidim de var. Sonuçta Levon abinin mekanı burası. Ayrıca AI alanında takım arkadaşı da aranır diyelim.
Kullandığım NVLINK :
Game Part :
Sadece RDR2'de deneme fırsatım oldu.
RDR2 de tek GPU'ya göre FPS %32 artış yaşandı. Ama çözünürlük 1600x900'dü. Çünkü kullanmış olduğum 4k monitorü teknik servise verdim. GPU'ları kullanım oranı %70-85 arası gidip geliyordu.
Bana darboğaz varmış veya çok düşük performansta kalmıs gıbı geldı.
Code Part:
Durumu iyi anlamak adına ve Sistemi zorlamak için ve performansı ölçmek içi kendimce ResNet-152 modeli ile testler yapıyorum. Aşağıda ona ait bir zip bulabilirsiniz.
epoch: verinin kaç defa tamamını öğrenmesi durumudur. epoch 10 ise verinin 10 defa üzerinden geçmiştir.
batch size : veri kümesidir. değer 512 ise 512 resimi tek seferde gpu'ya yollar gpu işler sonrasında yeni bir batch grubu alır ( bir sonraki 512 resmi alır). Yüksek miktarda vram kullanır.
BU KISIM NVLINK OLMADAN VEYA SLI KAPALI IKEN ELDE ETTIGIM SONUCLAR:
512 Batch - Single vs 2 GPU:
Tek 3090 üzerinde 512 Batch Size ile 1141 saniye iken deneme eğitimi, NVLINK olmadan 2 3090 822 saniyede bitiyor. Bu %40 Dolayların da bir hız artışı demektir. Tek GPU'da 1024 batch başlatılamadığı için 512 üzerinde test ettim. Ayrıca VRAM'lerin eşit bölüştürüldüğümü, limitin 48 GB olduğunu görüyorum. 2 GPU kullanıldığında 21 Derece fark olması normal değildir diye varsayıyorum. Peak değerileri diyorum elbette.
2 GPU 1024 Batch - 2 GPU 512 Batch:
Her 2 Durumda da VRAM'ler bölüşülmekte. 21-22 Derece fark bulunmakta. Peak değerileri diyorum elbette. İşin ikonik yanı ise Batch 1024 ile 512 arasında fazla bir fark olmaması ( %12 civarı)
NVLINK ILE SONUCLAR:
1024 batch de 2 vramde dolarken 512de yarılanıyor 2side. 512 batch ile nvlink var ve yokken arada neredeyse 100 saniye fark olusuyor.
1024 batch oldugunda ise nvlink 50 sanıye gerıde kalıyor.
NVLINK'i aktif ettim control panelden ve studıo drıver kurdum. Daha nasıl boostlayabılırım bılmıyorum. Ayrıca tüm değerleri tek tek yazamam maalesef. Lütfen zipteki dosyları nvlink var ve yok seklınde yan yana acıp kıyaslayınız. Sorun olup olmadıgını merak edıyorum ki var gibi gozukuyor daha performanslı olması gerekırdı.
zip dosyasında yer almayan bır sonuc daha var
slı açıkken 1024 batch
epoch 10 ' da 706sn
epoch 30 'da 2108 sn
slı kapalı 1024 batch de
epoch 10 'de 863 sn
epoch 30'de 2120 sn sürdü.
SLI acıkken ılk epoch 10da ekti göstermesine rağmen eğitim süresi uzadıkca daha efektıf hale gelmesı gerekırken neden daha az verımlı hale geldıgını merak edıyorum. Sadece mantık arıyorum ve bulamıyorum. lütfen bana analtınız.
Ayrıca daha önceden attıgım su sorulara yanıt beklemedeyim.
1) NVLINK Bellekleri havuzlamak dışında başka bir görevi var mıdır?
2) Bir Forumda "NVLINK GPU ve Ramler'i birlikte havuzlar" tarzı bir yorum gördüm ne kadar doğrudur? (Doğruysa Sistemde ki 64 GB RAM ile 48 GB VRAM birleşebilir mi demek oluyor bu ?)
3) NVLINK hizmetini icra ederken ne kadar sistemden kaynak kullanacak? RAM, CPU Core , Watt olarak düşünülebilir.
4) NVLINK Bağlı olmasına rağmen GPU'ları birbirinden bağımsız amaçlar için kullanabilecek miyim? Örneğin, 1 tanesi ile oyun oynayıp yayın açmayı diğeri ile AI eğitimine devam edebilecek miyim? Cveap evet ise ki öyle olmalı, GPU'yu nasıl seçeceğim? Ayarlardan graphicsden spesifik GPU seçilmiyor nvlink açık olunca sanırsam herşeyi birlikte yapmalıyım? Yoksa her seferinde devre dısımı bırakmam gerekecek.?
Ayrıca şöyle bir yazı okudum ne kadar doğru ne kadar yanlış bilmiyorum. "Batch size X dediğin zaman her GPU X batch alır total batch 2X olur" dedi. Ama 512 batch verdıgımde tek gpuya tüm memory dolar iken, 1024 batch verdiğimde 2 gpuya ( teori doğruysa total batch 2048 yapar) memory anca doluyor. Bu işi anlamlandıramadım. Ayrıca nvlink olmadan önceden de 1024 batch verebılıyordum.
Doğruysa bile 2 gpuda 256 batch size, 881 sn sürdü. tek gpuda 512 1141 sn sürdü. teori doğruysa % 70 üstü br artıs var. Yinede % 80-85 üstü bir hızı yakalayamıyoruz ki her benchmarkda % 90 üstü bir performans var. Am teorinin o kadarda doğru olduğunu düşünmüyorum.
Ayrıca nvidia-smi aracılığıyla hız 14GB/sn gözüküyor. Ama İnternet üzerinde 100'ü geçen paylaşımlar gördüm. Bende neden 14 halen anlamıs değilim.
Satın aldığım şirket openzeka ve nvidia foruma yazmama rağmen bir yanıt gelmedi. Yapılacaklar arasında ubuntu kurup denemek dısında bir seçenek kalmadı gibi görünüyor.
Lütfen bu işten anlayan biri aşağıdaki sonucları yan yana acarak bakabilirse ve bana öyle dönerse cok iyi olur. Sizde hak verırsınız kı tum bu yazıyı yazmak ve fotoları cekmek cıdden cok uzun zamanımı aldı. Umarım yanıt verebilecek biri çıkar diyelim.