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

 
Mathemat :
그리고 과부하. 많은 것: OpenCL-Z는 CPU를 장치로 보지 않습니다. 그는 아무것도 보지 못합니다.
설득력이 없습니다. OpenCL로 일부 스크립트를 실행합니다. OpenCL-Z는 진리의 기준이 아닙니다.
 
MetaDriver : 설득력이 없습니다. OpenCL로 일부 스크립트를 실행합니다. OpenCL-Z는 진리의 기준이 아닙니다.

예, 시도했습니다. MT5에는 시작 시 OpenCL에 대한 그런 줄이 없습니다. 예전에는 OpenCL 코드 실행을 보장하는 것이었습니다.

fyords : 귀하의 제거 프로그램을 사용하여 제거합니다! PRO , 레지스트리도 정리합니다.

그리고 장치 관리자에서 프로세서 커널을 삭제하려고 시도한 다음 재부팅하면 Windows가 프로세서에 대한 새 장작을 넣고 OpenCL이 선택합니다.

최후의 수단으로 해보겠다. 나는 레지스트리에 올라오는 소프트웨어를 좋아하지 않는다.

오 신선한 아이디어! 그리고 관리자에서 커널을 제거하는 방법은 무엇입니까?

joo : 안전 모드로 이동하여 OpenCL에 대한 언급이 있는 레지스트리에서 직접 삭제 분기를 시도합니다. 그런 다음 일반 모드의 시스템으로 이동하고 드라이버를 새 시스템에 넣습니다.

헤헤, 가버렸어...

PS 드디어 일어났습니다.

 
Mathemat :
...

오 신선한 아이디어! 그리고 관리자에서 커널을 제거하는 방법은 무엇입니까?

...

커널에서 평소와 같이 Windows에서 재부팅을 요청한 후 마우스 오른쪽 버튼 클릭-> 삭제 - 아니요, 모든 커널을 삭제한 다음 재부팅해야 합니다.

만세 동지들!!! :)

 
fyords : 커널에서 평소와 같이 Windows에서 재부팅을 요청한 후 마우스 오른쪽 버튼 클릭-> 삭제 - 아니요, 모든 커널을 삭제한 다음 재부팅해야 합니다.

그리고 관리자의 커널은 어디에 있습니까 - 어떤 프로세스입니까?

네, 알겠습니다. 그러나 그것은 오지 않았다. 내가 어떻게 모든 것을 깨끗하게 제거했는지 - 나는 여전히 이해하지 못합니다. 분명히 Windows에서가 아니라 AMD 설치 프로그램 자체를 사용하여 AMD APP SDK를 제거했기 때문에 ...

 
Mathemat :
그리고 관리자의 커널은 어디에 있습니까 - 어떤 프로세스입니까?
장치 관리자에서( 내 컴퓨터 -> 관리 -> 장치 관리자를 마우스 오른쪽 버튼으로 클릭)
 

런_맛_만드. 음, 기록 시간이 있습니다(480 버퍼 사용).

2012.03.22 01:31:21    Tast_Mand_ (EURUSD,H1)    54741 msec

버퍼를 늘려도 저하가 발생하지 않습니다. 두 코어 모두 100%이지만 돌은 약간 가열되고 여전히 20와트를 먹습니다.

 

Mathemat :

... 여전히 20와트를 먹고 있습니다 ...

내가 틀리지 않았다면, 당신은 Pentium G840 @ 2.8 GHz 를 가지고 있습니다. 그래서 그는 언제부터 20와트를 먹었을까? 그가 65와트처럼?
 
fyords : 내가 틀리지 않았다면, 당신은 Pentium G840 @ 2.8GHz 를 가지고 있습니다. 그래서 그는 언제부터 20와트를 먹었을까? 그가 65와트처럼?

네, 그러죠. 내가 짜낸 최대값은 CPUBurn 또는 LinPack에서 약 40와트였습니다.

Intel은 TDP를 최악의 경우 소산되는 전력으로 할당합니다. 나는 적어도 정상적인 응용 프로그램에서 그가 25와트 이상을 먹는 것을 본 적이 없습니다. 이제 터미널은 거의 100%를 차지했고 스톤은 천천히 워밍업 중이며(최대 코어 속도는 54 및 57) 48000의 버퍼로 작업을 수행하고 있습니다.

2 joo : Andrey , 이 코드가 당신의 코드와 같은지 아닌지 어떻게 생각하세요?

 "__kernel void MFractal(                                    \r\n"
"                       __global int *out                   \r\n"
"                      )                                    \r\n"
"  {                                                        \r\n"
"   int i = get_global_id(0);                               \r\n"
"   for(int u=0;u<100000000;u++)                            \r\n"
"   {                                                       \r\n"
"    out[i]+=u;                                             \r\n"
"    bool b=(out[i]<=10000);                                \r\n"
"    out[i]*=(int)b;                                        \r\n"
"   }                                                       \r\n"
"   out[i]+= i;                                             \r\n"
"  }                                                        \r\n" ;
 
Mathemat :

2 joo : Andrey , 이 코드가 당신의 코드와 같은지 아닌지 어떻게 생각하세요?

예처럼 보입니다.

나는 까다로운 구성(눈으로 보기 힘든)을 사용하지 않으려고 노력하기 때문에 확실하지 않지만, 코드 속도를 높일 수 있기 때문에 아마도 헛된 것입니다.

루프의 각 반복에서 변수 b가 다시 선언되기 때문에 코드가 더 느려질 것입니다.

 
joo : 루프의 각 반복에서 변수 b가 다시 선언되기 때문에 코드가 더 느려질 것입니다.

예, 20% 더 느립니다.

주기 외부에서 선언을 꺼내려고 했습니다. 시간은 조금 줄어들었지만 예전보다 많아졌습니다. 이상하게도 우리가 제거한 경우...