OpenCL: MQL5'te dahili uygulama testleri - sayfa 47

 

Bir şey benim için çalışmıyor. Başlatma dizesi normaldir:

2012.04.01 05:52:01    Terminal    CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.2 (2 units, 2793 MHz, 7912 Mb, version 2.0 (sse2))


(AMD'den OpenCL 1.1'i ve üstüne 1.2'yi ayarlayın). Ama şimdi testi çalıştırmak verir

2012.04.01 06:06:49    ParallelTester_00-01x (EURUSD,H1)    OpenCL not found.


Ondan önce Intel Grafik Sürücüsünü daha yeni bir sürüme güncelledim, ardından AMD sürücülerini kendi yükleyicileriyle yıktım ve ardından her şeyi yeniden yükledim.

Ve şimdi neyi yanlış yapıyorum?

PS Ama yakında Ivy olacak, bu yüzden herkese Intel'in Intel HD 4000 ile birlikte entegre grafiklerde neler yapabileceğini gösterme şansı verecek . Grafiklere bakın .

Сравнение между Intel Ivy Bridge и Sandy Bridge в различных бенчмарках
Сравнение между Intel Ivy Bridge и Sandy Bridge в различных бенчмарках
  • 2011.11.30
  • gagadget.com
Стали доступны утекшие в сеть слайды, где с демонстрируется разница между процессорами Intel Ivy Bridge и Sandy Bridge в бенчмарках. Если быть точным, то сравниваются модели Core i7-3770 и Core i7-2600 (i7-3770K и i7-2600K по какой-то причине не были использованы).
 
Mathemat :

Ve şimdi neyi yanlış yapıyorum?

Testi yeniden derleyin. Yardım etmelisin. Değilse, servis masasına gidin.
 
Mathemat :

Ve şimdi neyi yanlış yapıyorum?
CLCreateContext, use_gpu bool parametresini int device (aygıt numarası) olarak değiştirdi. Kodu düzeltin.
 
mql5 :
Yeni derlemede CLContextCreate işlevinin parametresi değişti, artık bool use_gpu yerine int device kullanılıyor.

sırasıyla OpenCL cihaz numarası olarak device>=0 kullanıldığında
cihazla==OPENCL_DEVICE_ANY (-1) mevcut tüm cihazlardan otomatik seçim kullanılır
device==OPENCL_DEVICE_GPU (-2) ile mevcut tüm GPU cihazlarından otomatik seçim kullanılır

Lütfen bana kodda nasıl yapılacağını göster. CLContextCreate ( OPENCL_DEVICE_ANY ) çağırıyorum, derlediğimde aşağıdaki sonucu alıyorum:

'OPENCL_DEVICE_ANY' - undeclared identifier    ParallelTester_00-01x.mq5    145    31


619 oluşturun.

Ve ikinci soru: En son yardımı nerede bulabilirim?

PS -1 argümanını koyduğum anda çalıştı. OPENCL_DEVICE_ANY sabiti henüz bildirilmedi :)

 
619 derlemesinde, bu sabitler CL_DEVICE_ANY/CL_DEVICE_GPU olarak yeniden adlandırılır.

Ancak sonraki yapılarda CL_USE_ANY/CL_USE_GPU_ONLY olacaktır.
 

OpenCL'nin i3-2120'de nasıl çalışacağını kontrol etmeye karar verdim (bu benim bilgisayarım değil, sistemde ayrı bir video yok). Teslim edilen AMD APP SDK, OpenCL-Z her şeyi belirledi. Başlatma sırasında terminalde aşağıdaki satır görüntülendi:

2012.04.02 03:59:47    Terminal    CPU: GenuineIntel  Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz with OpenCL 1.1 (4 units, 3310 MHz, 8039 Mb, version 2.0)


Mesaja eklenmiş ve yapı 619'daki en son değişiklikler dikkate alınarak biraz değiştirilmiş bir kod olan MetaDriver'da kontrol edildi (ilk testlere buradan bakın). Sonuç:

2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    CpuTime/GpuTime = 0.741385550890401
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    Result on Cpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    CPU time = 20483 ms
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    Result on Gpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    GPU time = 27628 ms
2012.04.02 03:59:55    ParallelTester_00-01x (EURUSD,H1)    OpenCL init OK!


"GPU" üzerinde yürütme sırasında, dört işlemci iş parçacığının tamamı %100 oranında tamamen işgal edildi.

Hızlanma elde etmek için ne yapılmalı? Pentium G840'a dayalı bir sistemde (ayrık video olmadan da), hızlanma 25 kat oldu:

Not Servis masasına bir mesaj gönderdim ama korkarım ki benim sorunlarım daha olası... Görünüşe göre AMD APP SDK'yı gözüm kapalıyken nasıl doğru bir şekilde kuracağımı ve kaldıracağımı çoktan öğrendim, ama öyle görünüyor ki tüm tuzakları atlamadım. Ve Intel OpenCL Runtime sistemde kurulu olmasına rağmen, taş hala terminalde bir OpenCL cihazı olarak tanınmıyor.

PPS Görünüşe göre başka bir şey kazdım ( https://www.mql5.com/ru/forum/6042/page25 ):

Küller: 2012.03.05 17:43:16 Terminal CPU: OrijinalIntel Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz, OpenCL 1.1 (4 birim, 3092 MHz, 4008 Mb, sürüm 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.7347677666287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Cpu'da Sonucu MaxResult==1257347'de 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Cunt intikatörleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CPU zamanı = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Gpu'da Sonuç MaxResult==1257347'de 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Cunt intikatörleri = 16; Sayı geçmişi çubukları = 144000; Sayı geçişi = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) GPU süresi = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL başlat TAMAM!

:(((

Belki "yanlış sistemin el bombaları" var? (AMD SDK sürümü açısından)

İşlemcisi bile i3-2120 ile neredeyse aynı...
Dosyalar:
 

Sonuçta GPU + OpenCL bir şeydir!

2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 728.1857142857143
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Cpu Sonucu MaxResult==3.78654 50 geçişte
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Cunt intikatörleri = 16; Sayı geçmişi çubukları = 50000; Sayı geçişi = 1280
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CPU zamanı = 101946 ms
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Gpu'da Sonuç MaxResult==3.78654 50 geçişte
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Sayı göstergeleri = 16; Sayı geçmişi çubukları = 50000; Sayı geçişi = 1280
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU süresi = 140 ms

 
MetaDriver :

Sonuçta GPU + OpenCL bir şeydir!

2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU süresi = 140 ms

GPU hesaplama süresi çok küçük olmayacak şekilde testler yapmayı öneriyorum. Her durumda, 140 ms, imho, özellikle GetTickCount() onlarca milisaniyelik ölçüm hatalarıyla çok güvenilmezdir.

MD , seni çok kıskanıyorum.

 
Mathemat :

GPU hesaplama süresi çok küçük olmayacak şekilde testler yapmayı öneriyorum.

CPU'yu bekleyecek sabrım yok :) Burada, ormana ne kadar uzak olursa GPU o kadar soğuk olur...
 
MigVRN :
CPU'yu bekleyecek sabrım yok :) Burada, ormana ne kadar uzak olursa GPU o kadar soğuk olur...

Aynı şekilde. :)

Ama şimdi, onu 4096 arı üzerinde başlatacağım. CPU beş dakika içinde sayacak.