OpenCl和它的工具。评论和印象。 - 页 5

 
Mathemat:

很好,这将为比较MQL和C/C++提供一个基础。我只是提供了事实。而且,无论如何,我到底为什么要做托马斯的信徒?

在神经上可能会有更多的差异,这一点没有争议。

还有,我想看看你的 "公正的事实",顺便说一下。

我的 "公正的事实 "就在那里。"几乎"--因为我挖出了我以前测试的来源。我将对它们进行一些更新,然后我将把来源与测试结果以表格的形式发布在这里。

 
joo: 还有,我想看看你的 "公正的事实",顺便说一下。

就在这里。见我在该页的第二个帖子。

顺便说一句,你已经用链接回复了我的帖子。上面的C语言代码可以很容易地在MQL4中进行重做。请看附件。

附加的文件:
pi.mq4  1 kb
 
Mathemat:

就在这里。见我在该页的第二个帖子。

顺便说一下,你已经用链接回复了我的帖子。上面的C语言代码很容易为MQL4重新制作。请看附件。

请把测试结果做成表格,贴在这里,这样,读这个主题的人就不必跳过这些链接了。
 
AlexEro:

我在私信中给你发了这些庞然大物的图片链接--不是为了迎合职业学校学生的数字******。

来吧,相信我,你的照片不会改变他们在这里的数字,哪怕是一个百分比。来吧,发布它。

但它能持续多久呢?在一个好的方面,你应该为这样的装备安装一个好的冷却装置,比如说水冷,就像下一张图片那样。

 
joo:
请把测试结果写成表格,贴在这里,这样,读这个主题的人就不必跳过这些链接了。

这不是一张桌子。几张照片。

在不同的编译设置下对parallelpi_x.cpp程序进行测试。当与MQL4比较时,只有第一个结果是重要的:6.723秒。 这里没有使用加速器(SSE*,IPP,OML)。

但是,如果有人想自慰,看看启用加速器后,结果是如何变化的,下面的附件是一个带有编译的EA和所需的并行库的档案。你所需要的是把它们都放在一个目录下,然后从命令行运行。

当然,这些结果并不代表对显卡阵列上的怪物的任何竞争。

用MQL4重写的同一程序。


结果是:22.98秒,也就是3.4倍。但那里没有关于阵列的工作,而对我们来说,这可能是至关重要的。附上该脚本的代码。

附加的文件:
release.zip  278 kb
pi_1.mq4  1 kb
 
joo:

MQL5比MQL4快20倍。

C++比MQL5快6倍(当使用自动并行化执行的库时)。

总计:20*6=120次。

如果你使用GPU计算,它将会更快。

总计:10/120=0.083c。

类似这样的事情。

所以,大张旗鼓地宣传!擂台上有四个不同的编译器,竞争的是...来进行编译。

嗯,这当然是个笑话。但说真的,已经写了六个测试。结果显示在下面的表格中。而评论则更低。:)

#测试
描述
可执行名称
测试结果,s
1
Ex5脚本和Ex5库
1 MLP MQL编译器.ex5
97.2
2
Ex5脚本和C++ dll库,MS编译器,所有优化功能都被禁用
2 MLP MS编译器nonOpt.ex5
42.6
3
Ex5脚本和C++ dll库,MS编译器,所有的优化功能都在
3 MLP MS 编译器 Opt.ex5
27.1
4
Ex5脚本和C++ dll库,英特尔编译器,包括所有优化功能
4 MLP英特尔编译器.ex5
12.5
5
Ex4脚本和Ex4库
5 MLP MQL4编译器.ex4
669.6
6
Ex4脚本和C++ dll库,英特尔编译器,所有优化功能已启用
6 MLP MQL4英特尔编译器.ex4
10.7




作为测试重计算,使用了4层神经网络MLP 80-100-100-10,设计为可插拔库ex4、ex5和dll。

我们看到,。

- 连接的ex5库和ex4库的结果相差6.8倍(1次和5次测试)。

- 连接的eX5库和英特尔编译器的dll库的结果相差7.8倍(1和4个测试)。

- 连接eX4库和英特尔编译器的dll-库的结果相差62.5倍(测试5和6)

结论。

当然,关于MQL4和MQL5之间20倍的差异,我有点夸大其词。在密集使用二维数组的情况下,会出现这样的差异(我记得这个数字是在我脑海中出现的),但我太懒了,不能为这个具体的特征专门调整测试(此外,它不会对应于 "重 "计算的典型案例--典型案例在测试中呈现),因此,你可以相信我的话或自己写一个测试。因此,我们可以谈论MQL4和MQL5之间6.8倍的速度差异,MQL4和C++之间62.5倍的差异。

而我对这一事实感到气馁--Ahtung!-调用dll的MQL4脚本比使用相同dll的MQL5脚本工作得更快。它是什么意思?- 我检查了它,运行了几次,没有错误。开发者似乎已经说过,与MT4相比,MT5已经优化了dll调用。要么是构建的特殊性(MT5 574和MT4 409)和测试不完全正确,要么是...我不知道。


谁需要它,可以使用grid(4或6个测试的编译dll - 非常快的grid),来源附后。每层中的神经元数量是可配置的。但优化器(4和5)不支持超过64个参数,此外,你必须使用一个大的步骤,所以这个怪物(如在测试中,80-100-100-10,19210个参数要优化!)不能用标准手段来训练,你必须使用自定义优化算法。顺便说一下,为此(不仅如此)我决定做一个付费工具(当然会在商店 里),它将允许使用4步和5步自定义优化器来训练无限数量的参数,甚至0步。

附加的文件:
tests_mlp.zip  71 kb
 

这很有说服力,,甚至非常有说服力。但有两点。

首先,当由MS编译时,即使是最好的结果(选项3)也比选项1好不到4倍。

第二,我不相信英特尔的全包式编译器比MS好2倍以上。所以你启用了英特尔的更多优化功能。

在任何情况下--令人印象深刻。等到桌子被填满的时候,就可以结束了。

现在我知道这些显卡阵列的作用了:在每一个 刻度上进行这些计算!这就是为什么我在这里看到的是一个个的视频。

 
Mathemat:

第二,我不相信英特尔的全包式编译器比MS的编译器好两倍以上。因此,英特尔启用了更多的优化功能。

有哪些--所有的都有。使用一个编译器而不使用它的所有功能是没有意义的--鱼儿寻找最深的地方,而程序员则寻找最好的编译器。在这个意义上,来自MQ的编译器并不是定制的,所以我们可以假设它们是经过优化调整的。
 

而且,我对这一事实感到灰心,阿克纠!-调用dll的MQL4脚本比使用相同dll的MQL5脚本工作得更快...它是什么意思?- 我检查了它,运行了几次,没有错误。开发者似乎已经说过,与MT4相比,MT5已经优化了dll调用。要么是构建的特殊性(MT5 574和MT4 409)和测试不完全正确,要么是...我不知道。



谢谢你,这很能说明问题,也很能说明问题。

我想我们不应该如此比较个别的百分比:因为悬浮 计算机 CPU速度(好吧,如果你以百万赫兹兆赫,或千兆赫兹,吉赫)......为零。

当速度差异约为10-20%时,更关注程序及其环境的可靠性和错误处理是有意义的。例如,当使用在MSC中制作的DLL时,你应该注意它是如何与MSVCRT.DLL链接的,是什么版本,因为它必须在复杂的terminal.exe进程的环境中和MSVCRT.DLL初始化块的环境中工作,不同的版本可能不同,等等。对于DLL中的正常错误处理,MetaTrader建立(并监控)了一连串的异常,这本身就拖慢了整个系统和调用DLL等等。

关于神经元速度的问题。

这里有一个人把FANN神经网络库翻译成OpenCL,并声称在平均GTX285卡上有20倍的加速。

"在我目前的GPU(GeForce 9500 GT)上,我在普通版本和OpenCL版本之间得到的速度大致相同。我目前正在订购GTX285,它的速度应该至少是10倍。使用现代GPU,如GTX 480,我预计它至少比我的2.26GHz Nehalem Mac Pro快20倍。"

...

"是的,新卡(GTX285)运行内核的速度快了大约20倍。"

http://leenissen.dk/fann/forum/viewtopic.php?f=2&t=658&start=0

http://leenissen.dk/fann/wp/

 

当然,几乎每个人都去过那里。

对于不访问mql5.com的狂热的B4粉丝:OpenCL:MQL5的内部实现测试

然而,几乎在那里。

我怀疑它对使用其他平台的自动交易商将非常有吸引力。