OpenCL: MQL5의 내부 구현 테스트 - 페이지 3

 
Renat :
다음과 같은 설명이 있습니다.
...
2) Double 유형 을 지원하기 때문에 OpenCL 1.1 이상을 지원합니다. OpenCL 버전 1.0은 정밀도가 재무 계산에 적합하지 않은 부동 소수점에서만 작동할 수 있습니다.

많은 구형 카드가 이중 작업을 지원하지 않지만 새 드라이버를 설치해 보십시오.
1.1 float도 계속 지원되기를 바랍니다. 일반적으로 float로는 충분하지 않지만 많은 특별한 경우에는 매우 많습니다. 그리고 추가 메모리는 특히 병렬 컴퓨팅에서 비용이 많이 듭니다.
 
Graff :
여름에 JavaDev에서 스크립트를 테스트하는 동안 내 viduha가 double을 지원하지 않지만 float와 함께 작동하는 문제를 발견했습니다. 드라이버가 이 문제를 해결할 수 없습니다. 카드를 변경해야 합니다.
비디오가 지원되지 않는 경우 모든 프로세서 코어가 사용됩니다.
 

나는 촉매 센터 12를 설치했습니다. 이전에는 11이었습니다. 이미 결과가 있습니다(빨간색으로 강조 표시됨).

드롭다운 목록 "0" - "1"로 "재생"하고 ATI 아이콘이 나타납니다. 이 프로그램이 시작되었을 때 더 이상 사라지지 않았습니다. 프로그램의 작은 결함 ....

 
WChas :
감독자! R6970 MSI - 1536 스레드(에이전트) 및 HD5870 기가바이트(1600 프로세서)가 있습니다. BOINC 관리자에서는 크로스파이어 없이 사용할 수 있습니다(두 번째 카드의 한 출력에 대한 플러그를 만들거나 두 번째 모니터의 출력 중 하나를 연결하는 것으로 충분합니다. 질문: 둘 다 크로스파이어 없이 사용할 수 있습니까 ???

아직 확실하지 않습니다. 그것은 코드에서 명시적으로 각 카드를 사용하는 것을 수반하는 장치를 선택하는 프로그램 자체에 더 많이 의존합니다.

나중에 첫 번째 베타를 출시할 때 보겠습니다.

 
MetaDriver :
1.1 float도 계속 지원되기를 바랍니다. 일반적으로 float로는 충분하지 않지만 많은 특별한 경우에는 매우 많습니다. 그리고 추가 메모리는 특히 병렬 컴퓨팅 에서 비용이 많이 듭니다.
OpenCL 1.1에서는 float가 물론 지원됩니다.
 
WChas :
내가 올바르게 이해했다면 1 GPU가 하나의 매우 강력한 에이전트입니까? 이 경우 프로세서 에이전트를 비활성화할 수 있습니까(비디오와 관련하여 속도가 낮기 때문에)?

프로세서 코어는 어떤 식으로든 비활성화할 수 없습니다. MQL5 환경의 호스트 플랫폼으로 어떤 식으로든 사용됩니다.

GPU 코어는 CPU 코어의 "일꾼"에 비해 "고도로 전문화된 꿀벌 떼"라는 것을 이해하는 것이 중요합니다. 어떠한 경우에도 GPU 코어를 기존 프로세서 코어의 대체품으로 사용할 수 없습니다.

전문 개발자가 작업을 수백 수천 개의 독립 스레드로 병렬화할 수 있다면 GPU는 10-100배 가속을 제공할 것입니다. 그러나 대부분의 단일 작업(예: 거래 및 지표)에서는 계산이 순차적으로 수행되므로 프로세스를 효과적으로 병렬화할 기회가 없습니다. 또한 기존 GPU에서 배정밀도(double)의 실제 수학을 사용하면 float에서 달성한 최고 값보다 2배 낮은 속도를 얻을 수 있습니다. 다음은 속도 저하에 대한 논의가 있는 흥미로운 링크입니다. http://www.gpgpu.ru/node/901

우리는 double 및 float에 대한 몇 가지 문제를 계산하기위한 작은 연구를 게시하기 위해 다른 클래스의 카드를 구입할 것입니다. 얻을 수 있는 것에 관심이 있습니다.

다음은 다양한 장치에서 부동 소수점 및 이중 계산 속도에 대한 소규모 연구입니다(전체 보고서: http://agora.guru.ru/hpc-h/files/017_Krivov_NvidiaGpuComparision.pdf ). Tesla에서는 이중 계산 속도가 float의 최고 속도보다 2배 낮고 GeForce 480 GTX와 같은 일반 카드에서는 거의 10배라는 것을 알 수 있습니다. 사실, 이는 이중 수학에서 SSE2-4 및 AVX를 적극적으로 사용하는 일반 4-8 코어 CPU에서 더 나은 결과를 얻을 수 있음을 의미합니다.


우리는 트레이딩 전략의 최적화 프로그램에서 연속 검색에서 백배(100-1000 이상 범위) 가속을 얻을 수 있었고 유전학에서는 10배(10-20-50-100-200배 범위)를 얻을 수 있었습니다. 병렬 테스트 실행 및 MQL5 클라우드 네트워크 에 대한 아이디어 . 그러나 단일 작업 내에서 병렬 처리에 대해 이야기하는 경우 모든 노력은 수백 수천 개의 독립적인 단순 코어로 작업을 지능적으로 분산할 수 있는 GPU 프로그래머의 어깨에 있습니다.


뉘앙스가 하나 더 있습니다. 컴퓨터에서 여러 에이전트를 사용할 때 GPU 사용 권한을 하나의 에이전트에만 할당할 가능성이 큽니다. 또는 실제 물리적 GPU 장치가 여러 개 있는 경우 에이전트가 시작되는 순간 에이전트 간에 배포됩니다.

공유의 결과 최종 성능이 비선형적으로 떨어지기 때문에 하나의 물리적 장치를 여러 에이전트로 나누는 것은 불합리한 것이 사실입니다. 즉, 하나의 GPU에 4개의 에이전트가 하나의 GPU에 1개의 에이전트보다 훨씬 더 나쁜 결과를 보여줍니다. 이는 내부 테스트를 통해 확인되었습니다.

보다 자세한 테스트를 거쳐 결과를 극대화하는 결정을 내리도록 하겠습니다.

Кофигурацыя системы на базе Tesla C2050/C2070 (C2075) | GPGPU.ru
  • www.gpgpu.ru
Здравствуйте! Возникла задача внедрения GPU-Computing для решения задач численного моделирования (симуляция и оптимизация фабрик полупроводников с помощью эвристик, докторская работа). Считать действительно много, и есть довольно хороший потенциал для распараллеливания расчетов, никакой роботы с видео, рендерингом и прочим. Помогите, пожалуйста...
 
 
 
설명 감사합니다.
Renat :

........

우리는 트레이딩 전략의 최적화 프로그램에서 연속 검색에서 백배(100-1000 이상 범위) 가속을 얻을 수 있었고 유전학에서는 10배(10-20-50-100-200배 범위)를 얻을 수 있었습니다. 병렬 테스트 실행 및 MQL5 클라우드 네트워크 에 대한 아이디어 . 그러나 단일 작업 내에서 병렬 처리에 대해 이야기하는 경우 모든 노력은 수백 수천 개의 독립적인 단순 코어로 작업을 지능적으로 분산할 수 있는 GPU 프로그래머의 어깨에 있습니다.

........

개인적으로 옵티마이저의 속도 향상도 중요합니다. 그래서 다양한 비디오 카드에 필요한 업데이트 + 성능표를 기대하고 있습니다.
 

MQL4.com의 OpenCL에 대한 스레드에서 다시 게시:

https://www.mql5.com/ru/forum/137422/page6

그렇게 간단하지 않습니다.

또한 Rinat는 사람들을 혼란스럽게 합니다. OpenCL 1.0은 이중 부동 소수점과 함께 잘 작동할 수 있으며 모든 제조업체에서 지원하는 "공개 옵션으로" 제공되지만 모든 기존 카드에는 적용되지 않습니다.

http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/

"선택적 배정밀도 및 반부동 소수점

OpenCL 1.0은 선택적 확장으로서 배정밀도 및 반부동 소수점에 대한 지원을 추가합니다. 배정 밀도 데이터 형식은 IEEE-754 배정밀도 저장 형식을 확인해야 합니다.

double 을 사용하려는 응용 프로그램은 커널 코드에서 배정밀도 데이터 유형을 선언하기 전에 #pragma OPENCL EXTENSION cl_khr_fp64 : enable 지시문을 포함해야 합니다. 이렇게 하면 내장 벡터 및 스칼라 데이터 유형 목록이 다음을 포함하도록 확장됩니다......"

테스터에서도 작동할 수 있지만 OpenCL 1.0 전문가에서는 작동하지 않습니다. Rinat가 말했듯이 "이중 부동 소수점이 없기 때문"이 아니라 정확히는 위에서 말했듯이 안전 장치가 부족하기 때문입니다. OpenCL 1.0의 스레딩 및 MT4-5의 흐름이 있는 도약을 위해.

일반적으로 OpenCL(및 CUDA)에는 많은 혼란이 있습니다. 무엇을 원하십니까? 결국, 라디오 엔지니어들은 프로그래밍의 개념을 바꾸기 시작했습니다. 그들은 철의 마음을 가지고 있습니다.

문제는 소위 "플랫폼 선택" 에도 있습니다. 프로그램, 즉 MT 또는 전문가의 DLL 또는 전문가는 반드시 수동으로 플랫폼(AMD, Nvidia, Intel)을 선택해야 합니다. 컴퓨터에서 OpenCL 커널을 시작한 다음 컴퓨터에 다중 GPU가 있는 경우 수동으로 DEVICE를 선택하는 컴퓨터가 여러 개일 수 있습니다. OpenCL에는 아직 자동 플랫폼 선택이 없습니다. Rinat는 "가장 강력한 자 자동 선택"에 대해 이야기하지만 그것이 어떤 것인지 모르겠습니다. 표시된 예에서는 플랫폼 선택 및 장치(GPU, CPU) 선택이 없습니다.

또한 표준의 여러 GPU 또는 GPU + CPU에서 OpenCL 작업의 자동 병렬화가 아직 없습니다. AMD는 드라이버/SDK의 일부 버전에서 자동 디스패칭을 수행했지만 문제가 있었고 AMD는 현재 이 기능을 껐습니다.

요약하면: MT4-5용 OpenCL 프로그램을 개발하고 활성화하려면 몇 가지 수동 노력 이 필요하므로 자동으로 또는 "옵션으로 다시 컴파일"하여 작동하지 않습니다. 실제 작업에는 많은 플러그가 있습니다. 이것은 좋은 일이 될 것이며, 중요한 것은, 불행히도 이것은 HARDWARE ORIENTED PROGRAMMING이며, 이는 잘못된 것입니다. CUDA 또는 OpenCL용 병렬 프로그램 디버깅은 하드웨어 혁명가들이 예상한 것보다 훨씬 더 어려운 것으로 나타났습니다. Nvidia는 드라이버 문제와 디버그 결함에 대한 많은 불만으로 인해 가을 2011 CUDA 컨퍼런스를 취소했습니다. 글쎄, 그들은 최신 툴킷에 1000개의 새로운 기능 을 추가했습니다. 그리고 가장 간단한 프로그램이라도 일반 사람들에게 작동하지 않거나 플러그와 함께 제공된다면 이제 어떻게 해야 할까요? 결국 그들은 설명 도구에서 OpenCL 또는 CUDA의 내부 메커니즘 작업의 절반도 표시하지 않았습니다.

드라이버 또는 프로그램 호환성으로 인해 정지된 비디오 카드의 GPU 속도(Gigaflops)는 0입니다.

OpenCl и инструменты для него. Отзывы и впечатления. - MQL4 форум
  • www.mql5.com
OpenCl и инструменты для него. Отзывы и впечатления. - MQL4 форум