2013.11.2916:39:50 ParallelTester_00-01 x (EURUSD,H1) CLGetInfoInteger() returned 22013.11.2916:39:51 ParallelTester_00-01 x (EURUSD,H1) OpenCL init OK!
2013.11.2916:39:51 ParallelTester_00-01 x (EURUSD,H1) GPU time = 62 ms
2013.11.2916:39:51 ParallelTester_00-01 x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12802013.11.2916:39:51 ParallelTester_00-01 x (EURUSD,H1) Result on Gpu МахResult==1.34787 at 699 pass
2013.11.2916:40:05 ParallelTester_00-01 x (EURUSD,H1) CPU time = 14492 ms
2013.11.2916:40:05 ParallelTester_00-01 x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12802013.11.2916:40:05 ParallelTester_00-01 x (EURUSD,H1) Result on Cpu МахResult==1.34787 at 699 pass
2013.11.2916:40:05 ParallelTester_00-01 x (EURUSD,H1) CpuTime/GpuTime = 233.741935483871
也许雷纳特可以看看能从这里面学到什么。新的规格很可能在MQL5中也会有更好的性能,不是吗?
至于C#/C++,如果需要,我们也可以甩掉它。最主要的是获得最大可能的产出。;)
在这样的机器上测试了这个主题中的一些脚本。
CPU-Z
CUDA-Z
对于每一个脚本,我都会提供一个链接到发布该脚本的帖子,以便其他人能够快速找到它,运行测试并在需要时比较结果。
测试1
测试2
测试3
规模=1000
测试4
测试5
测试6
测试7
测试8
我还试图测试MetaDriver的qpu_EMA-Rainbow 指标。
在CPU上,其结果有时会好上2倍。下面是结果。
//---
Volodya(MetaDriver),给我看看你的成果?
P.S. 我在内核代码中把gpuEMA 函数参数的类型从__global 改为__local。稍微快一点,但仍然比在CPU上慢。
我还试图测试MetaDriver的qpu_EMA-Rainbow 指标。
在CPU上,其结果有时会好上2倍。下面是结果。
Volodya(MetaDriver),给我看看你的成果?
P.S. 内核代码中的gpuEMA 函数参数从__global 改为__local。稍微快一点,但仍然比在CPU上慢。
我也有类似的结果。 这一点早就被讨论过了,而且很有道理--任务太简单了,把内存转移到显卡上和从显卡上转移到显卡上并不划算。 GPU的优势出现在更复杂的任务上。
一个将GPU加速用于交易(衍生品)的例子。
马克-乔希--以其关于金融数学,特别是关于衍生品和期权交易的书籍而闻名,曾在此报告过他的工作。
http://ssrn.com/abstract=2388415
他把他的OOP式工作翻译成了CUDA GPU。他在2010年开始做,然后休息了一段时间,从2011年到2014年夏天,他把它做到了工作版本0.3。他成功地实现了100倍的 加速度...137倍--而这是在一个连接的算法上,这很难。
这项工作使用了C++中的QuantLib库,他自己也承认,他不得不 按照 "OOP->>程序化方法 "的思路重新设计,以便使其在CUDA GPU上运行。
他写道。
"我已经在GPU上用LMM实现了IRD的蒙特卡洛定价,并对早期锻炼的特征进行了最小化。
你可以从kooderive.sourceforge.net获得C++和CUDA两种语言的代码。该文件在......
我在CUDA上使用的代码与之前在C++上使用的完全不同。从本质上讲,我把数据作为中心概念,并使用代码来对数据进行操作。这种风格是非常实用的。这确实花了很多功夫,因为我以前的C++实现是面向对象的。"
他的项目本身是开源的。
http://sourceforge.net/projects/kooderive/