전 세계의 음모와 완전한 편집증의 지지자, 음, 아니면 가격 통제를 좋아하는 사람들에게 바칩니다! ;) - 페이지 7

 
Mathemat :
그래, 나는 GPGPU 계산을 자랑하기로 했다. 그리고 어떻게 - 가속이 있습니까?

가속도는 어디에서 오는가? 계산보다 버퍼에 복사하는 데 더 많은 시간이 걸립니다.

이것은 도끼의 샘플입니다. 계산이 상대적으로 무거울 때 가속이 붙습니다.

지금은 기록 전체에 걸쳐 주어진 패턴 세트(병렬 512개 패턴)와의 상관 관계를 계산하는 스크립트를 추가하고 있습니다. 여기에는 100배의 이득이 있습니다(추정에 따르면). 부검은 그것이 실제로 어떻게 될 것인지 보여줄 것입니다.

 

마지막으로 자랑이 아니라 OpenCL을 대중화하는 것입니다. 여기! :)

게다가 멋지다.

 
Mathemat :

그리고 어떻게 - 가속이 있습니까?

여기 yazz에서!!

 2012.03 . 02 01 : 15 : 10      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 7223 ms
2012.03 . 02 01 : 15 : 10      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.01871 at 49 pass
2012.03 . 02 01 : 15 : 03      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 312 ms
2012.03 . 02 01 : 15 : 03      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.01871 at 49 pass
2012.03 . 02 01 : 15 : 02      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!

결과는 같지만(정확성 확인) 시간은 매우 다릅니다. 이 경우 차이는 23배입니다. 대체로 - 그만한 가치가있었습니다.

144,000개 바, 한 번에 512개 패스의 이력을 통해 단일 레이어 퍼셉트론을 실행했습니다. 좋아요.. ;)

 
MetaDriver : 이 경우 23배 차이. 대체로 - 그만한 가치가있었습니다.
얼마나 건강한가!
 
Mathemat :
얼마나 건강한가!

결과적으로 일반적인 시간은 조금 더 낫습니다. 재방송을 보십시오:

 2012.03 . 02 01 : 26 : 59      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 7238 ms
2012.03 . 02 01 : 26 : 59      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.80004 at 320 pass
2012.03 . 02 01 : 26 : 51      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03 . 02 01 : 26 : 51      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.80004 at 320 pass
2012.03 . 02 01 : 26 : 51      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!
2012.03 . 02 01 : 26 : 48      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 7270 ms
2012.03 . 02 01 : 26 : 48      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.48404 at 207 pass
2012.03 . 02 01 : 26 : 41      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 281 ms
2012.03 . 02 01 : 26 : 41      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.48404 at 207 pass
2012.03 . 02 01 : 26 : 41      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!

25회 이상. 심지어 아주 그렇습니다. :)

8번째 입력 뉴런이었습니다. 이제 16개의 입력을 확인하십시오.

 2012.03 . 02 01 : 32 : 32      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03 . 02 01 : 32 : 32      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.22936 at 78 pass
2012.03 . 02 01 : 32 : 18      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03 . 02 01 : 32 : 18      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.22936 at 78 pass
2012.03 . 02 01 : 32 : 17      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!
2012.03 . 02 01 : 32 : 01      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 14618 ms
2012.03 . 02 01 : 32 : 01      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.21085 at 143 pass
2012.03 . 02 01 : 31 : 46      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03 . 02 01 : 31 : 46      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.21085 at 143 pass
2012.03 . 02 01 : 31 : 46      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!

차이는 이미 45배입니다.

음, 모든 것이 정확합니다. 계산이 어려울수록 고정 오버헤드 비용이 줄어듭니다(어레이를 앞뒤로 전송).

 

그리고 이것은 병렬로 1024개의 패스입니다.

 2012.03 . 02 01 : 45 : 04      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 29282 ms
2012.03 . 02 01 : 45 : 04      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 0.73802 at 802 pass
2012.03 . 02 01 : 44 : 35      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 327 ms
2012.03 . 02 01 : 44 : 35      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 0.73802 at 802 pass
2012.03 . 02 01 : 46 : 36      Tester- 512 _Test_001 (EURUSD,M1) СPU time = 29265 ms
2012.03 . 02 01 : 46 : 36      Tester- 512 _Test_001 (EURUSD,M1) Result on Cpu МахResult== 1.58618 at 821 pass
2012.03 . 02 01 : 46 : 06      Tester- 512 _Test_001 (EURUSD,M1) GPU time = 328 ms
2012.03 . 02 01 : 46 : 06      Tester- 512 _Test_001 (EURUSD,M1) Result on Gpu МахResult== 1.58618 at 821 pass
2012.03 . 02 01 : 46 : 06      Tester- 512 _Test_001 (EURUSD,M1) OpenCL init OK!

주의하십시오-GPU에는 차이가 전혀 없습니다(1280개의 코어가 있습니다. 즉, 전체 작업이 한 패스에 맞습니다).

CPU 점검은 물론 순차적으로 이루어집니다.

따라서 원하는 스튜어드에 거의 도달했습니다. 차이는 89.5474배(!)

 

예, 루프 내부의 무거운 계산은 OpenCL에 가장 적합합니다.

당신이나 친구가 A8-3850 기반 컴퓨터를 가지고 있었습니까? 그런데 400개의 그래픽 파이프라인(통합)이 있습니다!

 
Mathemat :

당신이나 친구가 A8-3850 기반 컴퓨터를 가지고 있었습니까? 그런데 400개의 그래픽 파이프라인(통합)이 있습니다!

뭔가 헷갈리시죠? 여기에서 http://kazan.kompiko.info/priceshop.php?desc_id=111255 를 찾았습니다.

별 것 아닌 것 같고 4심은 그냥 컨베이어 노구구에 관한 것입니다.

 

그리고 당신은여기 돌에 대한 설명을 읽었습니다. 나는 이 조약돌(더 정확하게는 GPU 부분)이 OpenCL을 지원하지 않는다는 것을 강력히 의심합니다.

CPU 입장에서는 하늘의 별의 돌로는 부족하다. 그러나 그의 통합은 주목할 만하며 "좋은" 경우 별도의 비디오 괴물을 설치하지 않고도 수십 배의 가속을 완전히 믿을 수 있습니다. 왜 경제적인 슈퍼컴퓨터가 아닌가?

그리고 "다섯"- 이런 식으로 멀티 코어 스톤의 힘이 거의 쓸모없는 것처럼 보입니다. 물론 최적화를 제외하고는 조건부입니다. 최적화를 며칠 동안 계속해야 하는 경우 4개 또는 6개 코어 수에 따라 어떤 차이가 있습니까? 그렇다면 가장 빠른 정직한 듀얼 코어 Celeron G530이 아니더라도 Cloud를 실행하십시오...

추신, 그건 그렇고, 저는 AMD 팬이 아닙니다. 나는 이 모든 AMD 물건이 궁극적으로 어디로 이어질지 알아내려고 노력하고 있습니다.

 

Volodya , 이 스크립트를 실행하고 결과를 보고하십시오.

도움을 주신 MQL5 에 감사드립니다.

파일: