OpenCL: interne Implementierungstests in MQL5 - Seite 63

 
GKS: Hätte AMD nicht vor ein paar Jahren ATI Readon gekauft.

ATI wurde vor 6 Jahren, im Jahr 2006, gekauft.

Schade nur, dass die Konkurrenten von Intel nicht über eine ähnliche Technologie wie Hyper-Threading verfügen - hoffentlich erfindet AMD sie noch.

Bulldozer ist eine Art Hardcore-Implementierung von Hyper-Threading: 8 Unterkerne mit offensichtlich knappen FPUs, die ebenfalls um Ressourcen kämpfen.

Überraschenderweise schnitt Bull im Durchschnitt etwas besser ab als Thuban x6, selbst bei Multithreading. Bei ganzzahligen, gut vergleichbaren Aufgaben ist er schnell (und liegt leicht unter dem i7), aber bei allen anderen Aufgaben verliert er gegen den i7 und liegt im Durchschnitt auf Augenhöhe mit dem i5-2400. Kurz gesagt, ein Server-Prozessor für den Desktop. Und es ist unwahrscheinlich, dass Trinity hier Abhilfe schaffen kann: Die Kerne werden mit Bulldozern platt gemacht.

Nach Angaben von ixbt,

CPU-Leistungssteigerung von bis zu 29 % dank des neuen Prozessorkerns mit der Bezeichnung Piledriver

Ich habe mich also geirrt. Ich frage mich, bei welchen Anwendungen das der Fall ist?

AMD ����������� APU ����� A ������� ��������� (Trinity)
AMD ����������� APU ����� A ������� ��������� (Trinity)
  • www.ixbt.com
��� � ���������, �������� AMD ������� ����������� ��������� ���������� ����� A ������� ���������, ��������� ����� ��� �������� ������������ Trinity. ��� ������������� ��� ��������, ������� ������������ ������, ���������� �� ������������ � ����������� ����������, HTPC � ������������ ������. APU ������� ���������, �� ������ �������������...
 
Mathemat: Bulldozer ist eine Art Hardcore-Hypertrading-Implementierung: 8 Unterkerne mit offensichtlich knappen FPUs, die ebenfalls um Ressourcen kämpfen.

In Bezug auf die Energieleistung ist sie noch schlechter. Wie viel mehr Energie wird für die Ausführung jedes physischen Kerns verbraucht, als wenn 4 physische Kerne 8 unabhängige Threads ausführen...

/ Ich habe den Beitrag korrigiert, indem ich das Zitat von Ihrer Antwort getrennt habe. Um Ihre Antwort außerhalb des Zitats eingeben zu können (wenn Sie das nicht können), klicken Sie auf die HTML-Schaltfläche auf der linken Seite, geben Sie ein paar Buchstaben ganz am Ende der Markierung ein und kehren Sie in den visuellen Modus zurück - Mathematik/

 
Ich möchte glauben, dass bei diesem Projekt...
 

https://www.mql5.com/ru/articles/405 - nachdem ich diesen Artikel gelesen hatte, interessierte ich mich für das Thema GPU-Computing, obwohl ich kein Programmierer bin, aber in diesem Artikel stieß ich auf einen Linkhttp://www.ixbt.com/video3/rad.shtml, der wiederum diesen Artikel anlockte -http://www.ixbt.com/video3/rad2.shtml. Ich denke, dieses Thema könnte zaiterezovat Entwickler dieses Projekts, denn es beschreibt eine Variante, um die Performance-Optimierung Testosteron-Strategie mit komplexen Operationen zu erhöhen. Vielleicht hilft es bei der Entwicklung des Projekts.

P.s. Ich habe diesen Artikel nicht bis zum Ende gelesen.

Danke für den Hinweis....

OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 

Und was denken die Leute hier über das C++ AMP, das Microsoft für sein VS11 implementiert hat:

http://msdn.microsoft.com/en-us/library/hh265136(v=vs.110).aspx

Wir haben diese Technologie auf dem AMD Fusion Developer Summit im Juni 2011 angekündigt. Gleichzeitig haben wir angekündigt, dass wir die Spezifikation offenlegen wollen, und wir arbeiten mit anderen Compiler-Anbietern zusammen, damit sie sie in ihren Compilern (auf jeder Plattform) unterstützen können.

Beachten Sie, dass MS möchte, dass diese Spracherweiterung offen ist. Ich habe es in VS11 ausprobiert und ich muss sagen, dass es eine coole Sache ist. Statt umständlichem CUDA SDK Code in einer separaten .cu nur ein paar Zeilen in der gleichen .cpp:

Ich wünschte, MQL5 hätte eine ähnliche Funktion. Ich habe noch nie mit OpenCL gearbeitet, aber ich habe auch gehört, dass es dort schwer zu programmieren ist.

C++ AMP Overview
C++ AMP Overview
  • msdn.microsoft.com
C++ Accelerated Massive Parallelism (C++ AMP) accelerates execution of C++ code by taking advantage of data-parallel hardware such as a graphics processing unit (GPU) on a discrete graphics card. By using C++ AMP, you can code multi-dimensional data algorithms so that execution can be accelerated by using parallelism on heterogeneous hardware...
 
gpwr: Es wäre schön, wenn MQL5 die gleichen Möglichkeiten hätte.

OpenMP ist bereits gefragt worden. Das tun sie nicht.

 
Frage an die Terminalentwickler: Gibt es Pläne, die OpenCL-API um die Möglichkeit zu erweitern, die Größe von Arbeitsgruppen festzulegen? Das wäre sehr schön. Wahrscheinlich in CLExecute(), so wie ich es verstehe.
 
Mathemat:
Frage an Terminalentwickler: Gibt es Pläne, die OpenCL-API um die Möglichkeit zu erweitern, die Größe von Arbeitsgruppen festzulegen? Das wäre sehr schön. Wahrscheinlich in die Funktion CLExecute(), so wie ich sie verstehe.

CLExecute(cl_krn,work_dim,offset,work) - nicht wahr?

bool  CLExecute(
               int          kernel,                   // хендл на кернел OpenCL программы
               uint         work_dim,                 // размерность пространства задач 
               const uint&  global_work_offset[],     // начальное смещение в пространстве задач
               const uint&  global_work_size[]        // общее количество задач
               );
 
joo: CLExecute(cl_krn,work_dim,offset,work) - nicht wahr?

Nein, das ist nur die Größe des globalen Arbeitsbereichs.

Aber die Größe der lokalen Arbeitsgruppe ist in der Implementierung der Terminalentwickler nicht zu finden. Nun, das sollten Sie.

In der OpenCL-API mit vollem Funktionsumfang gibt es die Funktion clEnqueueNDRangeKernel( ), deren Analogon CLExecute() ist. Es ist das sechste Argument - const size_t*local_work_size, das benötigt wird.

 
Ich verstehe.
Grund der Beschwerde: