"New Neural", MetaTrader 5 platformu için bir sinir ağı motorunun Açık Kaynak projesidir. - sayfa 58

 
TheXpert :
???
Andrey TheXpert , A, deyin B dediğinden beri . Millet Meclisi'nin ana darboğazı olarak ne görüyorsunuz?
 
Ukrayna :
Önemli değil.
 
TheXpert :
Önemli değil.

Benim için önemli, gelişmek, farklı görüşler duymak, sonuçlar çıkarmak istiyorum.

Not Andrey, her şeyi yakın alma, her zaman haklı olamazsın, bu yüzden açık kaynak projesi tartışmak, kanıtlamak.

 

GPU Cuda güçlü bir iştir. 16 Intel iş parçacığında (4 çekirdekli işlemci) 2-3 saat çalışan bir kodum vardı. Ve 300'den fazla CUDA çekirdeğinde aynı mesafeyi 10 dakikada koştum, bu etkileyiciydi. Ancak Kudo kodunun geliştirilmesi çok zordu: Koddaki tüm hesaplamaları manuel olarak paralel dizilere ayırmanız, belleği optimize etmeniz gerekiyordu (maalesef Kudo çekirdeklerinde çok az şey var). Bunu yapamadım - akıllı bir programcı yardımcı oldu. Hala onun kodundan korkuyorum ve orijinal (paralel olmayan) kodumda tüm değişiklikleri yapmaya devam ediyorum. Ben şu görüşü geliştirdim: Algoritma kararlı ise o zaman yetkin bir programcı yardımıyla optimize edilip GPU'ya aktarılabilir, benim gibi kendi kendini yetiştirmiş programcılar bunu yapamaz. Atlanan algoritma için hemen GPU koduyla başlarsanız, baypas uzun zaman alacaktır. Ben kendim her zaman, kendimi anlayabildiğim basit, ancak en uygun olmayan kodla başlarım. Ve ancak beklenen sonuçları aldıktan sonra optimize etmeye başlıyorum. Beni oyuyor, bir programcı değil :)

 
gpwr :

GPU Cuda güçlü bir iştir. 16 Intel iş parçacığında (4 çekirdekli işlemci) 2-3 saat çalışan bir kodum vardı. Ve 300'den fazla CUDA çekirdeğinde aynı mesafeyi 10 dakikada koştum, bu etkileyiciydi. Ancak Kudo kodunun geliştirilmesi çok zordu: Koddaki tüm hesaplamaları manuel olarak paralel dizilere ayırmanız, belleği optimize etmeniz gerekiyordu (maalesef Kudo çekirdeklerinde çok az şey var). Bunu yapamadım - akıllı bir programcı yardımcı oldu. Hala onun kodundan korkuyorum ve orijinal (paralel olmayan) kodumda tüm değişiklikleri yapmaya devam ediyorum. Ben şu görüşü geliştirdim: Algoritma kararlı ise o zaman yetkin bir programcı yardımıyla optimize edilip GPU'ya aktarılabilir, benim gibi kendi kendini yetiştirmiş programcılar bunu yapamaz. Atlanan algoritma için hemen GPU koduyla başlarsanız, baypas uzun zaman alacaktır. Ben kendim her zaman, kendimi anlayabildiğim basit, ancak en uygun olmayan kodla başlarım. Ve ancak beklenen sonuçları aldıktan sonra optimize etmeye başlıyorum. Beni oyuyor, bir programcı değil :)

Bu nedenle, GPU hesaplama alanında bir uzmandan tavsiye almamız gerekir. yu-sha ve JavaDev , ay!

Aşağıdaki sorularla ilgileniyor:

1. Gelecekte yeniden çalışma zahmetinden kaçınmak için GPU üzerinde projeyi (veya bireysel modüllerini) hesaplama olasılıklarını (şimdiye kadar sadece olasılıklar, uygulama değil) ortaya koyarken her şeyden önce neye dikkat etmelisiniz?

2. GPU çekirdek bellek sınırları nelerdir? İlke olarak, tüm yürütme kodunu bellekte (onlarca ve yüz binlerce çubuk) geçmiş boyunca ayrı bir çalıştırmaya yerleştirmek mümkün müdür?

Şimdilik bunlar genel sorular. Anladığım kadarıyla daha ayrıntılı, daha sonra ortaya çıkacak.

 
joo :

Bu nedenle, GPU hesaplama alanında bir uzmandan tavsiye almamız gerekir. yu-sha ve JavaDev , ay!

Aşağıdaki sorularla ilgileniyor:

1. Gelecekte yeniden çalışma zahmetinden kaçınmak için GPU üzerinde projeyi (veya bireysel modüllerini) hesaplama olasılıklarını (şimdiye kadar sadece olasılıklar, uygulama değil) ortaya koyarken her şeyden önce neye dikkat etmelisiniz?

2. GPU çekirdek bellek sınırları nelerdir? İlke olarak, tüm yürütme kodunu bellekte (onlarca ve yüz binlerce çubuk) geçmiş boyunca ayrı bir çalıştırmaya yerleştirmek mümkün müdür?

Şimdilik bunlar genel sorular. Anladığım kadarıyla daha ayrıntılı, daha sonra ortaya çıkacak.

Ve yaygın kullanıma yönelik bir projede neden kuda ile uğraşasınız ki? Bazı kullanıcıların bir yeri vardır, bazılarının başka yeri vardır ve yine de bazılarının hiç yeri yoktur. Örneğin, iş dizüstü bilgisayarımda hiç yok. Aynı ağın kodu, kude ve bellekteki çekirdek sayısına bağlı olarak çok farklı olacaktır. Herkesin kullanabilmesi için önce bu ağ motorunu normal bir Intel işlemcisi için yazmak ve ardından mantıklıysa onu optimize etmek daha iyidir. Bu arada, motoru bulutta çalışacak şekilde oluşturmak daha iyidir. Bulut bilişime aşina değilim. Nerelerde var?
 
gpwr :
Ve yaygın kullanıma yönelik bir projede neden kuda ile uğraşasınız ki? Bazı kullanıcıların bir yeri vardır, bazılarının başka yeri vardır ve yine de bazılarının hiç yeri yoktur. Örneğin, iş dizüstü bilgisayarımda hiç yok. Aynı ağın kodu, kude ve bellekteki çekirdek sayısına bağlı olarak çok farklı olacaktır. İlk önce bu ağ motorunu herkesin kullanabilmesi için normal bir Intel işlemcisi için yazmak ve ardından mantıklıysa onu optimize etmek daha iyidir. Bu arada, motoru bulutta çalışacak şekilde oluşturmak daha iyidir. Bulut bilişime aşina değilim. Nerelerde var?
Katılıyorum, ilk önce KUDa'sız bir proje yapmanız gerekiyor. Ancak gönderiye bir yorumum var - sadece Intel'i keskinleştirmek değil, aynı zamanda AMD'yi de unutmamak gerekiyor.
 
gpwr :
Ve yaygın kullanıma yönelik bir projede neden kuda ile uğraşasınız ki? Bazı kullanıcıların bir yeri vardır, bazılarının başka yeri vardır ve yine de bazılarının hiç yeri yoktur. Örneğin, iş dizüstü bilgisayarımda hiç yok. Aynı ağın kodu, kude ve bellekteki çekirdek sayısına bağlı olarak çok farklı olacaktır. İlk önce bu ağ motorunu herkesin kullanabilmesi için normal bir Intel işlemcisi için yazmak ve ardından mantıklıysa onu optimize etmek daha iyidir. Bu arada, motoru bulutta çalışacak şekilde oluşturmak daha iyidir. Bulut bilişime aşina değilim. Nerelerde var?

MQ, MQL5'te CUDA (yalnızca nVidia'dan gelen video kartları) için değil, OpenCL için destek sözü verdi. OpenCL, hem CPU hem de GPU (AMD ve nVidia ve intel) olmak üzere çok çekirdekli işlemcilere sahip herhangi bir donanım üzerinde çalışabilir . Dolayısıyla hem CPU hem de GPU hesaplamayı destekleyen bir proje herkes için işe yarayacaktır.

MQL5 OpenCL'yi destekleyeceğinden, bulut aracılarının GPU hesaplamayı da destekleyeceği anlamına gelir.

 

Ukrayna :

Her zaman haklı olmak imkansız, bu yüzden açık kaynak projesi tartışmak, kanıtlamak.

İhtiyacım var mı?
 
joo :

Bu nedenle, GPU hesaplama alanında bir uzmandan tavsiye almamız gerekir. yu-sha ve JavaDev , ay!

Aşağıdaki sorularla ilgileniyor:

1. Gelecekte yeniden çalışma zahmetinden kaçınmak için GPU üzerinde projeyi (veya bireysel modüllerini) hesaplama olasılıklarını (şimdiye kadar sadece olasılıklar, uygulama değil) ortaya koyarken her şeyden önce neye dikkat etmelisiniz?

2. GPU çekirdek bellek sınırları nelerdir? İlke olarak, tüm yürütme kodunu bellekte (onlarca ve yüz binlerce çubuk) geçmiş boyunca ayrı bir çalıştırmaya yerleştirmek mümkün müdür?

Şimdilik bunlar genel sorular. Anladığım kadarıyla daha ayrıntılı, daha sonra ortaya çıkacak.

Önemli Noktalar:

1) GPU'lar yalnızca eğitim için gereklidir

2) Bir katmandaki nöronların değerlerinin paralel hesaplanması ve daha da önemlisi!, yüzlerce ağın aynı anda çalıştırılmasıyla performansta önemli bir artış elde edilir.

Projenin özerk bileşenlere maksimum dağılımı - dikkat etmeniz gereken şey bu

GPU'da yüz binlerce çubuğun geçmişini depolamak için fazlasıyla yeterli DDR bellek

Çekirdek belleği çok sınırlıdır (30-50 KB). Doğrudan programlama da bu sorunu çözer - buna değer, çünkü çipin belleği çekirdek frekansta çalışır ve ona erişim 0 döngüye mal olur. Ayrıca nükleer bellek bankalarının çakışmaları da var, onlar da atlanıyor.

Windows özelliğiyle ilgili hoş olmayan bir an var - bir çalıştırma >~ 5 saniye sürerse sürücüler sıfırlanır

Bu nedenle, elde edilen maksimum değer: 100 bin tarih çubuğu başına ~ 100 nörondan oluşan 100-200 ağ eğitimi

Bu (maksimum) yapılandırmayla, GTX 460 GPU'da saniyede ~ 20-30 çalıştırma optimizasyon hızı elde ediyoruz