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

 
Urain :

네, 이해합니다, 당신이 좋아하지 않는 것 같아요

1. 알고리즘의 복잡성 및 응용 프로그램의 메모리 오버런

2. 복사 단계에서도 이동할 수 있기를 원합니다.

ZY 100000개 요소를 복사한 다음 998000개 오프셋을 수행할 필요가 없었습니다.

3. 그러나 오프셋이 있는 옵션은 그대로 두어야 합니다. 동일한 데이터를 여러 번 복사하지 않고 새 오프셋을 사용하여 이미 준비된 CL 버퍼에서 새 작업을 위해 데이터를 가져올 수 있기 때문입니다.

1. 아닙니다. 불필요한 복사 로 인한 시간낭비에 만족하지 않습니다. float를 사용하는 경우에도 여전히 간격에 복사해야 합니다.

2. 네.

3. 네.

 
Сторонникам всемирного заговора и полным параноикам, ну или просто любителям по управлять ценой, посвящается! ;) - MQL4 форум
  • www.mql5.com
Сторонникам всемирного заговора и полным параноикам, ну или просто любителям по управлять ценой, посвящается! ;) - MQL4 форум
 

수업. 인상적인. 맛있는 팬케이크.

//---

OpenCL 에 대한 기사가 있습니까? 나는 아직 이 주제에 실제로 접근하지 못했지만 앞으로 읽는 것이 매우 흥미로울 것입니다. 또는 적어도 사용 방법에 대한 몇 가지 예제 스크립트 도움말에서. 정보가 충분하지 않습니다.

 

단일 CPU 코어에 비해 내 카드에서 200 배 더 빠른 속도를 얻을 수 있었습니다.

 2012.03 . 04 23 : 01 : 32 ParallelTester_00- 01 x (EURUSD,D1)  CpuTime/GpuTime = 216.0292397660819
2012.03 . 04 23 : 01 : 32 ParallelTester_00- 01 x (EURUSD,D1)  Result on Cpu МахResult== 1.3431 at 819 pass
2012.03 . 04 23 : 01 : 32 ParallelTester_00- 01 x (EURUSD,D1)  Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 23 : 01 : 32 ParallelTester_00- 01 x (EURUSD,D1)  CPU time = 36941 ms
2012.03 . 04 23 : 00 : 55 ParallelTester_00- 01 x (EURUSD,D1)  Result on Gpu МахResult== 1.3431 at 819 pass
2012.03 . 04 23 : 00 : 55 ParallelTester_00- 01 x (EURUSD,D1)  Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 23 : 00 : 55 ParallelTester_00- 01 x (EURUSD,D1)  GPU time = 171 ms
2012.03 . 04 23 : 00 : 55 ParallelTester_00- 01 x (EURUSD,D1)  OpenCL init OK!

테스트하고 결과를 게시하십시오.

CPU: AuthenticAMD AMD Phenom(tm) II X6 1100 T Processor with OpenCL 1.1 ( 6 units, 3311 MHz, 16345 Mb, version 2.0 )
GPU: Advanced Micro Devices, Inc. Cayman with OpenCL 1.1 ( 20 units, 750 MHz, 1024 Mb, version CAL 1.4 . 1664 (VM))

카드가 메모리에서 가져오지 않는 경우 - 이력(CountBars) 또는 패스 수(CountPass)를 줄이십시오. 이는 덜 바람직합니다.

예고편의 Prog(다중 채널 테스터 모델)

파일:
 
2012.03 . 04 22 : 24 : 07      ParallelTester_00- 01 x (EURUSD,D1)       OpenCL init OK!
2012.03 . 04 22 : 24 : 08      ParallelTester_00- 01 x (EURUSD,D1)       GPU time = 1513 ms
2012.03 . 04 22 : 24 : 08      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 22 : 24 : 08      ParallelTester_00- 01 x (EURUSD,D1)       Result on Gpu МахResult== 1.80839 at 1002 pass
2012.03 . 04 22 : 24 : 52      ParallelTester_00- 01 x (EURUSD,D1)       CPU time = 44055 ms
2012.03 . 04 22 : 24 : 52      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 22 : 24 : 52      ParallelTester_00- 01 x (EURUSD,D1)       Result on Cpu МахResult== 1.80839 at 1002 pass
2012.03 . 04 22 : 24 : 52      ParallelTester_00- 01 x (EURUSD,D1)       CpuTime/GpuTime = 29.11764705882353
2012.03 . 04 22 : 27 : 16      Terminal        GPU: NVIDIA Corporation GeForce GT 440 with OpenCL 1.1 ( 2 units, 1660 MHz, 1024 Mb, version 295.73 )
2012.03 . 04 22 : 27 : 16      Terminal        CPU: AuthenticAMD AMD Athlon(tm) II X4 630 Processor with OpenCL 1.1 ( 4 units, 2812 MHz, 2048 Mb, version 2.0 )
내, 그렇게 뜨겁지 않은 다리미에서도 증가가 보입니다. 도움이 되는 테스트. 고맙습니다.
 

내 결과, 133배의 속도 향상:

 2012.03 . 04 23 : 23 : 30      ParallelTester_00- 01 x (EURUSD,D1)       CpuTime/GpuTime = 133.8285714285714
2012.03 . 04 23 : 23 : 30      ParallelTester_00- 01 x (EURUSD,D1)       Result on Cpu МахResult== 1.24101 at 1079 pass
2012.03 . 04 23 : 23 : 30      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 23 : 23 : 30      ParallelTester_00- 01 x (EURUSD,D1)       CPU time = 18736 ms
2012.03 . 04 23 : 23 : 11      ParallelTester_00- 01 x (EURUSD,D1)       Result on Gpu МахResult== 1.24101 at 1079 pass
2012.03 . 04 23 : 23 : 11      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 04 23 : 23 : 11      ParallelTester_00- 01 x (EURUSD,D1)       GPU time = 140 ms
2012.03 . 04 23 : 23 : 11      ParallelTester_00- 01 x (EURUSD,D1)       OpenCL init OK!
2012.03 . 04 23 : 21 : 47      Terminal        CPU: GenuineIntel  Intel(R) Core(TM) i7- 2600 CPU @ 3.40 GHz with OpenCL 1.1 ( 8 units, 3392 MHz, 16366 Mb, version 2.0 )
2012.03 . 04 23 : 21 : 47      Terminal        GPU: Advanced Micro Devices, Inc. Barts with OpenCL 1.1 ( 14 units, 900 MHz, 1024 Mb, version CAL 1.4 . 1664 (VM))
 
놀랍게도 단일 코어에서 i7은 X6 1100T보다 두 배 빠르게 실행됩니다(i7의 경우 - 약 3.8GHz, 1100T - 3.7의 경우). 이러한 계산이 분명하지만 낮은 스레드에서 CPU 속도의 차이는 어마어마합니다.
 
Mathemat :
놀랍게도 단일 코어에서 i7은 X6 1100T보다 두 배 빠르게 실행됩니다(i7의 경우 - 약 3.8GHz, 1100T - 3.7의 경우). 이러한 계산이 분명하지만 낮은 스레드에서 CPU 속도의 차이는 어마어마합니다.

많은 생각을 하고 구글을 읽었다.

나는 순무를 긁었다.

그들은 가장 진보된 mql-compiler-optimizer를 자체적으로 고정했는데 우리에게 제공하지 않거나 더 이상 모릅니다.

그런 일은 일어나지 않습니다. "난 믿지 않아!" (다) KSS

그리고 인텔에 최적화된 코드 생성기가 있을 가능성이 큽니다. AMD 차별.

어떤 불명예를 위해! 유엔에 항의하겠습니다.

 
주니어 인텔)
 2012.03 . 05 02 : 03 : 33      ParallelTester_00- 01 x (EURUSD,D1)       OpenCL init OK!
2012.03 . 05 02 : 03 : 33      ParallelTester_00- 01 x (EURUSD,D1)       GPU time = 234 ms
2012.03 . 05 02 : 03 : 33      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 02 : 03 : 33      ParallelTester_00- 01 x (EURUSD,D1)       Result on Gpu МахResult== 1.03434 at 315 pass
2012.03 . 05 02 : 04 : 01      ParallelTester_00- 01 x (EURUSD,D1)       CPU time = 27471 ms
2012.03 . 05 02 : 04 : 01      ParallelTester_00- 01 x (EURUSD,D1)       Соunt inticators = 16 ; Count history bars = 144000 ; Count pass = 1280
2012.03 . 05 02 : 04 : 01      ParallelTester_00- 01 x (EURUSD,D1)       Result on Cpu МахResult== 1.03434 at 315 pass
2012.03 . 05 02 : 04 : 01      ParallelTester_00- 01 x (EURUSD,D1)       CpuTime/GpuTime = 117.3974358974359
2012.03 . 05 01 : 54 : 17      Terminal        GPU: NVIDIA Corporation GeForce GT 520 with OpenCL 1.1 ( 1 units, 1620 MHz, 512 Mb, version 285.62 )

어떤 이유에서인지 로그에서 CPU에 대한 한 줄도 찾지 못했습니다.

인텔 셀러론 G530 2.4GHz

 

이해가 안되는 부분이 있습니다.

OpenCL 1.1이 설치된 GeForce GT 440(2개 장치, 1660MHz, 1024Mb, 버전 295.73) GPU 시간 = 1513ms 가 있습니다.

OpenCL 1.1이 포함된 Swan GeForce GT 520(1개 장치, 1620MHz, 512Mb, 버전 285.62) GPU 시간 = 234ms

그게 어떻게 가능합니까?

여기 에서는 GeForce GT 440 여기 에서는 GeForce GT 520의 특성을 비교했는데, 모든 면에서 내 것이 더 크고 실행 시간이 6.5 배 더 깁니다.

NVIDIA GeForce GT 440 | NVIDIA
NVIDIA GeForce GT 440 | NVIDIA
  • www.nvidia.ru
Установи GeForce в свой ПК для максимальной производительности и разгони свою цифровую жизнь. Смотри потоковые HD фильмы и выводи фотографии высокого разрешения без задержек. Создай дома 3D кинотеатр с помощью Blu-Ray 3D™ и NVIDIA® GeForce®. Разгони свои любимые приложения и раздвинь границы возможностей интернет с новым поколением браузеров с...