OpenCL: gerçek problemler

 

OpenCL ile ilgili yeterince konu var ama örnek olarak verilen görevler ticaretten çok uzak.

Peki OpenCL tüccarlara ne getirebilir?

Evet, henüz OpenCL eğitimi almadım, bu yüzden ana noktaları bilmek ve netleştirmek istiyorum:

  1. Bu, girdi verilerini alan ve geri veren ayrı bir program mı? Yani, MQL'den hiç etkileşim yok mu?
  2. Yalnızca bir eşleşmenin varlığının onayını almak istiyorsanız dizi aramasını OpenCL'ye taşımaya değer mi?
  3. Optimize ederken, her bir iş parçacığı kendi OpenCL başlatmasını yapmalıdır ve aktif olana bağlanmanın bir yolu yok mu?
  4. Ve videoyu optimize ederken aynı anda birkaç OpenCL'den yavaşlamıyor mu?
 
Roffild :

OpenCL ile ilgili yeterince konu var ancak örnek olarak verilen görevler ticaretten çok uzak.

Peki OpenCL tüccarlara ne getirebilir?

Ne alabilirsen, vereceksin.

Evet, henüz OpenCL eğitimi almadım, bu yüzden ana noktaları bilmek ve açıklığa kavuşturmak istiyorum:

Pekala, çalış. Inet yardımcı olacaktır. Forumdaki sorulara kendinizi kaptırmayın, daha doğrusu giriş seviyesi sorularla. "Nasıl çalışır" ile ilgili tüm bilgiler internette ve forumdaki makalelerde yer almaktadır. Örneğin, bir kişinin çalışmaya daldığını ve malzemede belirli bir düzeyde ustalaşmanın zaten görünür olduğunu gördüğümde yardım etme arzum var. "İşte o, ben geldim, öğret bana!" Yardım etmek istemiyorum ama sadece “beyni ayarlamak” istiyorum. :)

Bugün bir istisna yapacağım (ruh hali iyi huylu), ancak ilk aşamada bariz bir kayma ile gelecekte büyük olasılıkla "bebek konuşmasını" görmezden geleceğim ve sadece belirli programlama sorularını cevaplayacağım, ayrıca, eğer öyle değillerse çok aptal.

1. Bu, girdi verilerini alan ve geri veren ayrı bir program mı? Yani, MQL'den hiç etkileşim yok mu?

openCL çekirdek işlemi sırasında etkileşim yoktur. Bir fonksiyon çağrısı ile analoji ile etkileşim: 1. başlangıç parametrelerini ayarlayın, 2. hesaplamayı başlatın, 3. sonucu alın

2. Yalnızca bir eşleşmenin varlığını doğrulamanız gerekiyorsa, OpenCL'de dizi araması yapmaya değer mi?

bilmiyorum. Göreve bağlı. Belki buna değmez. Ve belki buna değer. Telepat kulübünün nerede olduğunu biliyor musun? :)

3. Optimize ederken, her bir iş parçacığı kendi OpenCL başlatmasını yapmalıdır ve aktif olana bağlanmanın bir yolu yok mu?

Soruyu pek anlamadım. Terminal stratejisi tester/optimizer içindeki optimizasyonu kastediyorsanız, büyük olasılıkla öyle. Optimize ediciden openCL çalıştırmayı denemedim. Test cihazından çalıştırdım, ancak orada her şey tutarlı, bir çekirdek yeniden kullanılabilir, bu açık ve açıklama yapılmadan.
4. Ve optimize ederken, video aynı anda birkaç OpenCL'den yavaşlamıyor mu?

Optimize edicide çalıştırmayı denemedim. Ancak birkaç çağrı birbiriyle örtüşürse (bunu aynı anda birkaç OCL göstergesi ve Uzman Danışman başlatarak yaptım), o zaman doğal olarak yavaşlar.

// Kaynaklar tavandan alınmaz, değil mi?

Video kartının belleğini aşırı yüklerseniz (örneğin, birkaç işlem aynı anda video belleğine bellek miktarını aşan diziler yüklemeye çalışırsa), o zaman "sürücüyü bozabilirsiniz" - tam bir yeniden başlatma (sıfırlama) alabilirsiniz. ekran kartı ve sürücü, ardından sürücünün çökmesi hakkında bir mesaj. En azından kartımda/sürücümde bu birden çok kez oldu. Bu, geri dönüşü olmayan zararlı sonuçlara yol açmaz, yalnızca çökmeye neden olan programlar genellikle askıda kalır (yeniden başlatılması gerekiyordu). Daha önce, hala terminali asma vakaları vardı, ancak son zamanlarda bunu hatırlamıyorum.

// Ancak, sürücüyü utanmaz isteklerle uzun süredir "yırtmadım", kabaca "lüks sınırlarını" hissettim. :)

 
Roffild : OpenCL ile ilgili yeterince konu var ama örnek olarak verilen görevler ticaretten çok uzak.

Her şey çok basit: ticarete yakın bir görev alıyoruz (örneğin, tekliflerin geçmişinin analizi) ve OpenCL kullanarak çözmeye çalışıyoruz. Birkaç başarısız denemeden, literatürün daha fazla incelenmesinden ve yeni denemelerden sonra her şey yoluna girecek, garanti ediyorum. Ancak, İngiliz edebiyatına girme ve biraz azim ile minimum miktarlarda sivrisinek varlığına tabidir.

OpenCL sürücüleri zaten hem video kartları hem de işlemcilerde öykünme için iyi bir şekilde optimize edilmiştir (ikinci durumda, Intel işlemciler muhtemelen çok daha güçlüdür). Bu nedenle, sonunda hiçbir olumlu sonuç alamamak için çok çalışmanız gerekir.

 
Roffild :

Peki OpenCL tüccarlara ne getirebilir?

1-4. noktalara zaten cevap verildi ve asıl sorunuzu cevaplamaya çalışacağım (ancak bu tamamen benim bakış açım): OpenCL tüccarların büyük çoğunluğuna hiçbir şey vermeyecek, bunu bırakmak daha iyi " ekmek" programcılara.
 
Sharabnit yapanlar? Doğrusal bir denklem sisteminin çözümünü OpenCL'ye kaydırmak mümkün müdür? Sistemin boyutu gerçekten büyük olabilir ve hala nüanslar vardır.
 
TheXpert :
Sharabnit yapanlar? Doğrusal bir denklem sisteminin çözümünü OpenCL'ye kaydırmak mümkün müdür? Sistemin boyutu gerçekten büyük olabilir ve hala nüanslar vardır.

OpenCL'de SLAE çözümü

normal böyle bir pdf sorunuzu yanıtlıyor.

 

Nicholas, nezaketin için teşekkür ederim. CUDA ve kod yok.

Oh, bir şey daha söylemeyi unuttum - bir matris oluşturmak onu çözmekten daha fazla zaman alıyor :) bu yüzden inşaatı paralel hale getirmek gerekebilir.

 
TheXpert :

Nicholas, nezaketin için teşekkür ederim. CUDA ve kod yok.

Oh, bir şey daha söylemeyi unuttum - bir matris oluşturmak onu çözmekten daha fazla zaman alıyor :) bu yüzden inşaatı paralel hale getirmek gerekebilir.

Düşünmek gerek. İlk veriler nelerdir? // biçim, ilgilenilen veri yapısı

Bir matris inşa ettiğimiz anlamda mı? Bir sürü tampondan mı? Bir ağaçtan mı? İtibaren [...] ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных - Документация по MQL5
 
TheXpert :

Nicholas, nezaketin için teşekkür ederim. CUDA ve kod yok.

Oh, bir şey daha söylemeyi unuttum - bir matris oluşturmak onu çözmekten daha fazla zaman alıyor :) bu yüzden inşaatı paralel hale getirmek gerekebilir.

Uygulamayı değil, şemayı kastettim. CUDA kesinlikle farklıdır, ancak genel şema aynıdır.

Vladimir'e katılıyorum, size yardımcı olacak çok az bilgi veriyorsunuz.

Prensip olarak, başka birinin uyması pek olası değildir, bu nedenle halka gitmek istemiyorsanız, mevcut olanlardan herhangi birine kişisel olarak gidebilirsiniz.

 
MetaDriver :

Bir matris inşa ettiğimiz anlamda mı? Bir sürü tampondan mı? Bir ağaçtan mı? İtibaren [...] ?

Kabaca söylemek gerekirse, LSM problemini çözmek için gerekli olan çok büyük boyutlu (10 - 1000 ve daha fazla) bir alan var.

LSM sorununun çözümü nihayetinde

(1) türev denklemlerinin yapımı

(2) (1)'de elde edilen denklem sistemini çözme

Şimdi aslan payı çözüm zamanında (1)'dir. Boyut ne kadar büyük olursa, parça o kadar büyük olur.

 

Paralel algoritmalar, sıralı algoritmalara göre avantaj sağlayan yalnızca 2 çipe sahiptir.

Bu, her diş kendi ipliğini aldığında ve tüm uzunluk boyunca çektiğinde bir tarak algoritmasıdır.

Ve piramidal katlama/açılma. Açma daha az yaygındır, çoğunlukla katlanır.

Sorun ifadesi bu yongalardan herhangi birini içermiyorsa, paralel çözücü bir avantaj sağlamayacaktır, ancak daha sık olarak yüksek bellek yükleme maliyeti nedeniyle daha yavaş olacaktır.