"Hesaplamalar için OpenCL Nasıl Yüklenir ve Kullanılır?" makalesi için tartışma - sayfa 6

 

RX 580 / 570'i içerecek şekilde güncelleme yapabilen var mı?

Her iki karta da sahibim, ancak bu kartlardan yararlanmak için ayrıntılı talimatlar için yemek kitabına sahip değilim.

Çok teşekkür ederim.

 
Şu anda bir GTX1070 üzerinde OpenCL çalıştırmayı deniyorum, ancak Metatrader donanımdan bahsetmiyor veya bir yerde etkinleştiremiyorum. Mevcut MT5 ile nasıl görünmeli?
 
hao xue:

RX 580 / 570'i içerecek şekilde güncelleme yapabilen var mı?

Her iki karta da sahibim, ancak bu kartlardan yararlanmak için ayrıntılı talimatlar için yemek kitabına sahip değilim.

Çok minnettar olurum.

Terminalin neden rx580'i tanımadığını bilmiyorum ama opencl çalışıyor. Bu kodu deneyebilirsiniz:

void OnStart()
  {
//---
   Print("TERMINAL_OPENCL_SUPPORT = ",TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
   
   int cl_ctx; 
//--- OpenCL bağlamını başlatma 
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE) 
     { 
      Print("OpenCL not found"); 
      return; 
     } 
//--- OpenCL aygıtı hakkında genel bilgileri görüntüleyin 
   Print("OpenCL type: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE))); 
   Print("OpenCL vendor ID: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID)); 
   Print("OpenCL units: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS)); 
   Print("OpenCL freq: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY)," MHz"); 
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes"); 
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes"); 

  }
 

Herkese merhaba


Lensflare'deki kodu AMD 530 ve NVIDEA gtx 1060 yüklü bir bilgisayarda denedim ama başarılı olamadım. EA'm 0 cihaz desteklendiğini bildirdi. Aynı sorunu yaşayan biri var mı? Teşekkürler!


void OnStart()
  {
//---
   Print("TERMINAL_OPENCL_SUPPORT = ",TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
   
   int cl_ctx; 
//--- OpenCL bağlamını başlatma 
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE) 
     { 
      Print("OpenCL not found"); 
      return; 
     } 
//--- OpenCL aygıtı hakkında genel bilgileri görüntüleyin 
   Print("OpenCL type: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE))); 
   Print("OpenCL vendor ID: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID)); 
   Print("OpenCL units: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS)); 
   Print("OpenCL freq: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY)," MHz"); 
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes"); 
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes"); 

  }
 

Hangi openCL işlemcisini kullanacağımı nasıl seçebilirim?
Görünüşe göre CPU + Nvidia +Intel var ve ana sayfaya göre Intel GPU daha hızlı.

Ayrıca, Nvidia'm biraz çalışıyor ve EA'dan çıkmaya çalıştığımda çöküyor.

 

>MQL5'te OpenCL kullanmanın avantajını göstermek için, bazı kümelerdeki iki değişkenden bir fonksiyonun değerlerini hesaplayan ve sonucu grafiksel bir etiket (OBJ_BITMAP_LABEL) kullanarak grafik penceresinde görüntüleyen OpenCL_Sample.mq5 komut dosyası yazılmıştır.

Örnek ilginç ama şaşırtıcı derecede kullanışsız.....

OpenCL .... üzerinde standart bir Uzman Danışmanı optimize etmek için bir örnek verebilecek olan var mı?

Genel olarak makalenin hiçbir şey olmadığını düşünüyorum, tüm dünya çerçevelere (CNTK gibi) doğru ilerliyor, MQL5 için bir geliştirici OpenCL / CUDA'da değil MQL5'te kod yazmalı ve tüm ekran kartlarının çekirdekleri (CU) optimizasyon için mevcut çekirdekler listesinde sıradan çekirdekler olarak görünmelidir ve hepsi bu.

Ben öyle düşünüyorum ...

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BITMAP_LABEL
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BITMAP_LABEL
  • www.mql5.com
//| Создает объект "Графическая метка"                               |               chart_ID=0,                               sub_window=0,                             x=0,                                      y=0,                                      width=0,                                  height=0,                 ...
 
Boris Egorov:

MQL5 geliştiricisi OpenCL/CUDA'da değil MQL5'te kod yazmalı ve tüm ekran kartlarının çekirdekleri (CU) optimizasyon için kullanılabilir çekirdekler listesinde sıradan çekirdekler olarak görünmelidir, hepsi bu

Sanırım öyle...

sanki size MQL5'te kod yazma ve görevleri GPU'da hesaplama fırsatı verilmiş gibi, neden gürültü yapıyorsunuz?

Bir başka soru da, GPU'da hangi görevlerin çözülebileceğinin ve hangilerinin çözülemeyeceğinin farkında olmamanızdır.

Burada güzel bir makale var, ben de sene başında okumuştum https://habr.com/ru/company/combox/blog/425731/.

Eğer bir optimizasyon görevini paralelleştirebiliyorsanız, o zaman GPU kullanın.

 
Igor Makanu:

sanki MQL5'te kod yazmak ve GPU'da görevleri hesaplamak mümkünmüş gibi


tıpkı python/#'de yapıldığı gibi.

OpenCL yok, bir framework bağlantısı var, sadece neyi hesaplayacağını söylüyorsun, bu yüzden kişisel olarak GPU'dan bir çiftlik kurmak benim için CPU'dan daha kolay.

 
Boris Egorov:

tıpkı python/#'de yapıldığı gibi.

orada OpenCL yok, bu bir çerçeve bağlantısı

her şey doğru ve çerçeve GPU görevleri için özelleştirildi, tensorflow'u bu şekilde test ettim.


o zaman soru MQL5'e değil, MQL5 için çerçevelerin yaratıcılarına - ne yazık ki, onlar (çerçeveler) mevcut değil, bundan kendim muzdaripim,

ya da daha doğrusu, sadece birkaç tane var - SB'de alglib ve üçüncü taraf dillerle entegrasyon üzerine birçok makale.

Yani geliştiricilerin yazdığı gibi - kendiniz yazın, hazır çözümler yok.

 
Igor Makanu:

Her şey doğru ve çerçeve GPU görevleri için özelleştirildi, tensorflow'u bu şekilde test ettim.


o zaman soru MQL5'e değil, MQL5 için çerçevelerin yaratıcılarına - ne yazık ki, onlar (çerçeveler) mevcut değil, bundan kendim muzdaripim,

Daha doğrusu sadece birkaç tane var - SB'de alglib ve üçüncü parti dillerle entegrasyon üzerine birçok makale.

Yani geliştiricilerin yazdığı gibi - kendiniz yazın, hazır çözümler yok.

tam olarak öyle değil.

Geliştiriciler iyi ve çok şey yaptılar, Fuzzy, Alglib, python'u uyguladılar ama soru şu ki neden? Neden tüm bunları uygulamak için havalı geliştiricilerin bu kadar değerli zamanını harcadılar, çünkü aslında hiçbir işe yaramıyorlar.

Tabii ki sinir ağlarından bahsediyoruz, Alglib son derece sınırlı bir çerçeve ve yanılmıyorsam ücretsiz değil, üzerinde normal bir sinir ağı oluşturmak teoride bile imkansız.

Python konusunda da mutlu değilim ... EA'nın mantığını tamamen farklı bir dile nasıl aktaracağınızı düşünün .... ve sonra tekrar geri .... hiçbir şekilde doğru değil ... ve bu hemoroidin ne anlamı var.

bu nedenle ya cntk ya da tenzorflow'u en baştan uygulamak gerekiyordu ... o zaman standart bir optimize ediciye ihtiyacınız olmaz, genetik algoritmaya ihtiyacınız olmaz ve GPU'da sorunsuz bir şekilde hesaplayabilirsiniz ...