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

 
Ashes : 도움이되지 않았습니다

어떤 일을 했는지 자세히 말해주세요. AMD APP SDK를 중단했기 때문입니다.

그건 그렇고, 아마도 ParallelTester_00-01x 스크립트에서 0과 같은 매개변수를 CLContextCreate() 함수 에 삽입하지 않았을 것입니다(호스트, 즉 CPU에서 실행되었는지 확인하기 위해). 이것은 내 게시물에 언급되지 않았습니다.

 
Mathemat :
어떤 일을 했는지 자세히 말해주세요. AMD APP SDK를 중단했기 때문입니다.

적절한 Setup.exe, 제거를 실행하여 AMD APP SDK를 제거했습니다. 재부팅

설치된 Intel OCL(intel_ocl_sdk_1.5_x64_setup.exe), 런타임 전용. 재부팅

MT5 출시 - by. 귀하의 조언에 따라 레지스트리를 수정했습니다. 재부팅 MT5를 출시하는 것은 실망스러운 일입니다.

mql5 어드바이스에 경로를 추가했으며 x64 및 x32 모두 따옴표가 있거나 없는 상태로 시도했습니다. 레지스트리를 편집한 후 매번 재부팅하고 MT5를 시작합니다. 동일한 계란, 측면도입니다.

이제 HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors는 다음과 같습니다.

(기본값) REG_SZ(할당된 값 없음)

C:\Program Files (x86)\Intel\OpenCL SDK\1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)

 
Ashes : 이제 HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors는 다음과 같습니다.

(기본값) REG_SZ(값이 할당되지 않음)

C:\Program Files (x86)\Intel\OpenCL SDK\1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)

거기 봤어? 예를 들어, 이 경로에는 이와 같은 것이 없습니다(하지만 런타임만 다운로드하여 설치했기 때문에 없을 수도 있습니다).

그리고 두 번째로, 전체 경로 없이 intelocl.dll을 만들었습니다. 어쨌든 런타임 설치 중에 등록되었을 것입니다.

PS 전체 경로로 실험했습니다. 전체 경로(둘 다)가 있는 OpenCL 메타 트레이더를 볼 수 없습니다. 그러나 단순히 intelocl.dll을 이름으로 지정하면 컴퓨터를 다시 시작하지 않고도 모든 것이 즉시 표시됩니다.

시스템에서 같은 이름을 가진 두 개의 파일에서 "올바른" 파일을 선택하는 방법을 모르겠습니다.

프로세스에 대해 여기에서 보고하십시오. 그래도 흥미롭습니다. 갑자기 약간의 뉘앙스가 있습니다. 나 자신은 오랫동안 여기에서 고통을 겪었지만 여전히 결과를 "강화"했습니다. 이는 제가 정말 좋아합니다.

PPS 그건 그렇고, 내가 Intel 리소스에 있을 때 Intel SDK를 완전히 철거하고 다시 설치하라고 조언했습니다. 제거 프로그램뿐만 아니라 system32 및 sysWOW64 디렉토리로 이동하여 Intel의 ocl과 관련된 모든 것을 삭제하십시오. 파일 intelocl*.dll, opencl*.dll 등입니다. 여기 어딘가 - http://software.intel.com/en-us/forums/intel-opencl-sdk/ . 찾으면 더 정확한 링크를 올리겠습니다.

유용한 링크: http://software.intel.com/en-us/articles/opencl-release-notes/

여기에 특히 유용한 정보가 있습니다. http://software.intel.com/en-us/forums/showthread.php?t=102023&o=a&s=lr , Uri Levy(인텔)의 조언이 실제로 도움이 될 수 있습니다. 요컨대, 여전히 탬버린이 있는 게임입니다.

 
MetaDriver (53페이지):

이것은 CPU에 있습니다(이 장치 번호는 1입니다).

CLContextCreate( device ) 매개변수를 스크립트 매개변수로 가져왔습니다. 모든 옵션을 찌를 수 있습니다.

그러나 흥미로운 방법은 다음과 같습니다.

630번째 빌드의 이 스크립트는 어떻게 든 그렇게 시작되지 않습니다. 메시지가 없으면 루프에 들어가 100에 스톤을 로드합니다. 그리고 적당한 시간 내에 종료되지 않습니다. 하지만 이미 인텔 런타임이 있습니다.

 
Mathemat :

그러나 흥미로운 방법은 다음과 같습니다.

630번째 빌드의 이 스크립트는 어떻게 든 그렇게 시작되지 않습니다. 메시지가 없으면 루프에 들어가 100에 스톤을 로드합니다. 그리고 적당한 시간 내에 종료되지 않습니다. 하지만 이미 인텔 런타임이 있습니다.

재컴파일. 나를 위해 작동합니다.

 2012.04 . 21 00 : 33 : 21      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       CpuTime/GpuTime = 326.6
2012.04 . 21 00 : 33 : 21      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Result on Cpu МахResult== 4.15901 at 208 pass
2012.04 . 21 00 : 33 : 21      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Соunt inticators = 16 ; Count history bars = 50000 ; Count pass = 512
2012.04 . 21 00 : 33 : 21      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       CPU time = 40825 ms
2012.04 . 21 00 : 32 : 40      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Result on Gpu МахResult== 4.15901 at 208 pass
2012.04 . 21 00 : 32 : 40      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Соunt inticators = 16 ; Count history bars = 50000 ; Count pass = 512
2012.04 . 21 00 : 32 : 40      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       GPU time = 125 ms
2012.04 . 21 00 : 32 : 40      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       OpenCL init OK!

 
MetaDriver : 컴파일되었습니다. 나를 위해 작동합니다.

이 결과가 CPU에 있습니까?! 그렇다면, 당신은 나를 겁주는거야...

나는 일찍이 행복했다. 출시 - 이해할 수 있는 것은 아닙니다. 전문가 로그에 단일 항목이 없습니다. 대본이 시작되고 즉시 전체 돌을 자체로 채웠지만. 즉, 그는 온 힘을 다해 무언가를 때리지만 결코 CLContextCreate() 에 도달하지 못합니다(만약 그가 그랬다면 그는 무언가를 말했을 것입니다. 그렇죠?).

뭔가 새로운 것을. Intel 런타임이 AMD SDK에서 컴파일된 코드를 이해하지 못하는 것처럼. OCL_Device는 0과 -1을 모두 설정합니다. 쓸데없이.

일반적으로 플랫폼을 선택할 수 없는 것이 불편합니다. 우리는 그런 기회를 가져야 합니다. 재설치에 지쳤습니다.

 
Mathemat :

이 결과가 CPU에 있습니까?! 그렇다면, 당신은 나를 겁주는거야...

아니, GPU. 그러나 OpenCL 장치는 선택할 수 있습니다. 여기 CPU에서:

 2012.04 . 21 06 : 20 : 18      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       CpuTime/GpuTime = 74.28571428571429
2012.04 . 21 06 : 20 : 18      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Result on Cpu МахResult== 3.53209 at 36 pass
2012.04 . 21 06 : 20 : 18      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Соunt inticators = 16 ; Count history bars = 50000 ; Count pass = 512
2012.04 . 21 06 : 20 : 18      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       CPU time = 40560 ms
2012.04 . 21 06 : 19 : 38      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Result on Gpu МахResult== 3.53209 at 36 pass
2012.04 . 21 06 : 19 : 38      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       Соunt inticators = 16 ; Count history bars = 50000 ; Count pass = 512
2012.04 . 21 06 : 19 : 38      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       GPU time = 546 ms
2012.04 . 21 06 : 19 : 37      ParallelTester_00- 02 -{ 16 x7x3} (EURUSD,M1)       OpenCL init OK!

나는 일찍이 행복했다. 출시 - 이해할 수 있는 것은 아닙니다. 전문가 로그에 단일 항목이 없습니다. 대본이 시작되고 즉시 전체 돌을 자체로 채웠지만. 즉, 그는 온 힘을 다해 무언가를 부수지만 CLContextCreate()에 도달하지 않습니다(만약 그가 그랬다면 그는 무언가를 말했을 것입니다, 맞죠?).

뭔가 새로운 것을. Intel 런타임이 AMD SDK에서 컴파일된 코드를 이해하지 못하는 것처럼. OCL_Device는 0과 -1을 모두 설정합니다. 쓸데없이.

일반적으로 플랫폼을 선택할 수 없는 것이 불편합니다. 우리는 그런 기회를 가져야 합니다. 재설치에 지쳤습니다.

젠장, 착취자. :)

알겠습니다. 원본을 보관하세요. 그것으로 당신이 원하는 것을하십시오.

코드는 AMD SDK에서 컴파일되지 않습니다. 적어도 OCL 코드. OCL 프로그램은 mql 코드를 실행하는 동안 이미 컴파일되어 있습니다. OCL 스냅인의 EX5 파일에서는 mql/ocl-driver 브리지 기능만 컴파일됩니다. 나는 그들이 드라이버 제조업체에 따라 다른 기계 코드로 컴파일한다고 생각하지 않습니다. 개발자만이 이 점을 완전히 명확히 할 수 있지만.

 
MetaDriver : 코드가 AMD SDK에서 컴파일되지 않습니다.
이것은 이해할 수 있습니다. 나는 그것을 너무 혀로 묶었습니다 (글쎄, 나는 프로 코더가 아닙니다). 그러나 여전히 OpenCL "라이브러리"(API가 아닌 직접 내부 기능) 제조업체에 따라 다릅니다.
 
Mathemat :

거기 봤어? 예를 들어, 이 경로에는 이와 같은 것이 없습니다(하지만 런타임만 다운로드하여 설치했기 때문에 없을 수도 있습니다).

그리고 두 번째로, 전체 경로 없이 intelocl.dll을 만들었습니다. 어쨌든 런타임 설치 중에 등록되었을 것입니다.

...

"naked" intelocl.dll은 가장 먼저 확인된 것 중 하나입니다. 이 이름의 파일은 x64 및 x86 폴더에 모두 있습니다.

 
Ashes : "Naked" intelocl.dll이 가장 먼저 확인되었습니다. 이 이름의 파일은 x64 및 x86 폴더에 모두 있습니다.

그럼 어떻게 해야할지 모르겠습니다. 지원 팀 이 지시할 때까지 나 자신도 해결책을 찾기 위해 고문을 당했습니다. 아마도 완전한 솔루션은 아니지만 내 컴퓨터에서 작동했습니다.

아마, 무엇보다 오래된 SDK의 흔적을 깔끔하게 제거하는 방법을 배워야 할 것입니다.