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

 

메모리를 듀얼 채널 모드에 넣었습니다. 결과는 29배가 아닌 39배입니다.

 2012.03 . 05 09 : 45 : 56      ParallelTester_00- 01 x (EURUSD,D1)       OpenCL init OK!
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       GPU time = 1123 ms
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 09 : 45 : 57      ParallelTester_00- 01 x (EURUSD,D1)       Result on Gpu МахResult== 1.35098 at 174 pass
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       CPU time = 43914 ms
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       Result on Cpu МахResult== 1.35098 at 174 pass
2012.03 . 05 09 : 46 : 41      ParallelTester_00- 01 x (EURUSD,D1)       CpuTime/GpuTime = 39.10418521816563

어제 여러 번 테스트하여 오늘도 결과가 비슷했는지 확인했습니다.

이상한 점은 듀얼 채널 모드를 설정했을 때 CPU는 0.3% 증가를 주었지만 GPU는 25% 증가를 주었다는 것입니다.

 
tol64 :

그리고 제로에 뭔가가 있습니다. 무슨 뜻인가요? 이 줄 에서: Gpu MaxResult 의 결과 == 0 패스에서 0.0

메모리가 부족하거나 CountBars 또는 CountPass를 약간 줄여야 합니까?
 
fyords :

메모리를 듀얼 채널 모드에 넣었습니다. 결과는 29배가 아닌 39배입니다.

어제 여러 번 테스트하여 오늘도 결과가 비슷했는지 확인했습니다.

이상한 점은 듀얼 채널 모드를 설정했을 때 CPU는 0.3% 증가를 주었지만 GPU는 25% 증가를 주었다는 것입니다.

사실, 이상한 것은 없습니다. GPU를 사용한 작업(그래픽 작업, 즉 계산이 아님)에서 병목 현상은 RAM입니다(GPU에서 계산을 수행하는 것만으로는 충분하지 않으며 비디오 카드에서 RAM으로 결과를 가져와야 함). Op.memory가 더 빠르게 작동하기 시작했습니다. GPU의 결과가 향상되었습니다.

CPU의 경우 모든 것이 이미 RAM에 저장되어 있으므로 결과를 왔다갔다 할 필요가 없습니다.

따라서 실증적인 결론: GPU에서 빠른 계산을 원하면 빠른 메모리를 설치하십시오.

 
그러면 설명 덕분에 모든 것이 명확해졌습니다.
 
fyords :
메모리가 부족하거나 CountBars 또는 CountPass를 약간 줄여야 합니까?

네 맞습니다. 이것이 일어난 방법입니다.

... 또한 기쁘게 생각합니다. ))

//---

막대 수를 추가하면 계산하는 동안 이미지가 깜박이고 사라집니다.

 
2012.03.05 12:40:51     Terminal        CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz with OpenCL 1.1 (2 units, 2094 MHz, 2048 Mb, version 2.0)

Видеоадаптер    ATI Mobility Radeon HD 545v  (256 Мб)

2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      CpuTime/GpuTime = 19.70338983050847
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      Result on Cpu МахResult==1.33921 at 366 pass
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:59:28     ParallelTester_00-01x (GBPUSDL,H1)      CPU time = 46500 ms
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      Result on Gpu МахResult==1.33921 at 366 pass
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 08:58:41     ParallelTester_00-01x (GBPUSDL,H1)      GPU time = 2360 ms
2012.03.05 08:58:39     ParallelTester_00-01x (GBPUSDL,H1)      OpenCL init OK!
 

즉, 당신의 비율이 아무리 빨라도 주제의 결론은 간단합니다. 비디오의 경우 그것은 단지 냄비입니다 :)

동일하게, vidyaha는 이전 비디오 모델에서 최소 10배, 새 비디오 모델에서 100배의 비율을 만듭니다.

 2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      CpuTime/GpuTime = 364.5847953216374
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      Result on Cpu МахResult== 1.01643 at 577 pass
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 14 : 31 : 23      ParallelTester_00- 01 x (EURUSD,M15)      CPU time = 62344 ms
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      Result on Gpu МахResult== 1.01643 at 577 pass
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      GPU time = 171 ms
2012.03 . 05 14 : 30 : 21      ParallelTester_00- 01 x (EURUSD,M15)      OpenCL init OK!
CPU: Intel P4 3 GHz, 2 kernel, RAM 3 Gb, 32 bits
GPU: NVIDIA Corporation GeForce GT 430 with OpenCL 1.1 ( 2 units, 1400 MHz, 1023 Mb, version 295.73 )

제 경우 CPU 코어가 느리기 때문에 가속은 364배입니다.

 
Urain :

즉, 당신의 비율이 아무리 빨라도 주제의 결론은 간단합니다. 비디오의 경우 그것은 단지 냄비입니다 :)

동일하게, vidyaha는 이전 비디오 모델에서 최소 10배, 새 비디오 모델에서 100배의 비율을 만듭니다.

제 경우 CPU 코어가 느려서 364배 차이가 납니다.

우와! 이것은 기록이다! )))

//---

나중에 최신 드라이버(295.73)를 설치해 보겠습니다. 아마 조금 더 나아질 것입니다. ))

 
Urain : , vidyaha는 이전 비디오 모델에서 최소 10배, 새 비디오 모델에서 100배의 비율을 만들 것입니다.

흥미로운. 피요르드는 지도가 더 강력하고(GeForce GT 440) 계산 시간이 10배 이상 더 깁니다.

tol64 : 와 ! 이것은 기록이다! )))

예, 이 돌 대신 i286이 있고 지도 대신 현대 괴물이 있다고 상상하는 것은 무섭습니다. 전체 1000은 밝혀졌거나 몇 배 더 많았을 것입니다.

추신: 나처럼 별도의 vidyuhi가 없는 시스템을 갖고 있는 사람이 또 있을까요?

 

2012.03.05 17:43:16 터미널 CPU: 정품 Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz(OpenCL 1.1 포함)(4개 장치, 3092MHz, 4008Mb, 버전 2.0)

Mathemat :

...

추신: 다른 사람이 나처럼 개별 vidyuhi가 없는 시스템을 가지고 있습니까?

2012.03.05 17:43:16 터미널 CPU: 정품 Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz(OpenCL 1.1 포함)(4개 장치, 3092MHz, 4008Mb, 버전 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.7347677666287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) 1125 패스에서 Cpu MaxResult==1.27347의 결과
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) 카운트 표시기 = 16; 카운트 기록 막대 = 144000; 카운트 패스 = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CPU 시간 = 21309ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) 1125 패스에서 GPU MaxResult==1.27347에 대한 결과
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) 표시기 = 16; 카운트 기록 막대 = 144000; 카운트 패스 = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) GPU 시간 = 29001ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL 초기화 OK!

:((((

어쩌면 "잘못된 시스템의 수류탄"이 있습니까? (AMD SDK 버전 기준)