OpenCL:MQL5中的内部实现测试 - 页 58 1...515253545556575859606162636465...70 新评论 Sergey 2012.04.22 19:18 #571 Mathemat:好了,最后,我们一直在等你。如果你准备进行实验,请安装英特尔OpenCL Runtime(链接 说明)。 在不改变任何内容的情况下运行该脚本,并像你以前的同事那样从 "专家 "标签中发布日志。脚本在你的宝石上运行大约需要3分钟,请忍耐一下。同时,我们将看到OpenCL是如何在最酷的裸机Sandy Bridge石头上运行的。如果你没有耐心,或者你认为这超出了你的能力,那也没关系,没有冒犯的意思。P.S. 这个脚本的目的是看看在没有任何独立视频龙的情况下,一个裸露的CPU能做什么。我怀疑在正确插入Intel Runtime的情况下,这个脚本的加速度会在200左右甚至略高。有些人怀疑英特尔OpenCL Runtime是否正确安装。2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1347.1643835616442012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==0.9316 at 10253 pass2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 295029 ms2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 4 测试日志 - 算法交易, 交易机器人 Sceptic Philozoff 2012.04.22 19:40 #572 casinonsk:有人怀疑英特尔OpenCL Runtime是否正确安装。2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 295029 ms2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms你可能将CLContextCreate()参数设置为0以外的其他参数。好吧,我让你不要改变任何东西!我的意思是说,你不要改变任何东西。我们已经知道你的双头视频龙的能力。但似乎你甚至有好几个。根据我的粗略估计,在CLContextCreate(0),你应该有CPU时间=180000毫秒和GPU时间=900毫秒(大约)。对于这样一个CPU来说,你的第一次运行时间 是很奇怪的。也许它被其他任务所累?你能不能按我所附的脚本运行--不改变 代码中的 任何内容 ,一个字符也不 改变?P.S. 当然,也许device = 0对应的不是CPU而是其他东西。好吧,那就实验吧(从0到3)。理论上,最高的GPU时间应该对应于裸露的CPU,即主机。 Sergey 2012.04.22 20:17 #573 Mathemat:你没有把零作为CLContextCreate()的一个参数,而是设置了其他的参数。好吧,我让你不要改变任何东西!我的意思是说,你不要改变任何东西。我们已经知道你的双头视频龙的能力。但你似乎有好几个。根据我的粗略估计,在CLContextCreate(0),你应该有CPU时间=180000毫秒,GPU时间=900毫秒(大约)的数字。对于这样一个CPU来说,你的第一次运行时间 是很奇怪的。也许它被其他任务所累?你能不能按我所附的脚本运行--不改变任何东西,不 改变 任何一个字符?P.S. 当然,也许device = 0对应的不是CPU而是其他东西。好吧,那就实验吧(从0到3)。理论上,最高的GPU时间应该对应于裸露的CPU,即主机。我没有改变参数!按原样运行。根据视频,是的,它是2x590。我又用CLContextCreate(0)1,2,3试了一下,结果和以前一样。问题可能出在英特尔OpenCL Runtime 上。 Sceptic Philozoff 2012.04.22 20:24 #574 casinonsk:没有改变参数!按原样开始。 用CLContextCreate(0)1,2,3再次运行,结果与之前一样。所有的结果都是一样的?我不相信...那么,这个脚本不可能在光秃秃的CPU上有GPU时间=219ms。在最好的情况下,它将是约800毫秒,但不是约200毫秒。这是我的典型结果(我有奔腾G840 CPU)。2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 88.40817091454272 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==1.05116 at 7785 pass 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CPU time = 235873 ms 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==1.05116 at 7785 pass 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) GPU time = 2668 ms 2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK! 2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) CLGetInfoInteger() returned 1好吧,让我们继续前进。 测试日志 - 算法交易, 交易机器人 Sergey 2012.04.22 20:27 #575 Mathemat:所有的结果都是一样的吗?我不相信...那么,这个脚本不可能在光秃秃的CPU上有GPU时间=219ms。最好是约800毫秒,但不是约200毫秒。好吧,算了。我刚刚用CLContextCreate(0)又试了一次 2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1265.4059829059832012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==1.48772 at 2051 pass2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 296105 ms2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==1.48772 at 2051 pass2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 128002012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 234 ms2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 5 测试日志 - 算法交易, 交易机器人 Sceptic Philozoff 2012.04.22 20:56 #576 casinonsk: 刚用CLContextCreate(0)又试了一次这显然是在独立的卡上,而不是在CPU上:在仿真上有这样的速度是很难做到的。而你拥有的设备数量已经是5个,这让人毛骨悚然。如果你不介意运行稍作修改的代码,请在这里公布结果。在代码中,各种OpenCL设备的计算被放入一个循环中(它们应该是快速的),而x86上的计算,即最长的计算,只被执行一次。它将会很长,但脚本本身只执行一次。 我意识到,我已经让你感到厌烦了。但无论如何,这将是支持团队的好信息。 附加的文件: ParallelTester_00-01x_cycle.mq5 15 kb Dmitriy Parfenovich 2012.04.22 21:08 #577 我有一个有趣的结果 ))明 白了,不是设备的总数,而是当前的数量。2012.04.22 22:02:51 ParallelTester_00-01 x_cycle (EURUSD,M30) OpenCL init OK! Device number = 0 虽然计算正在进行中,但我将在准备好后公布。顺便说一下,CLGetInfoInteger() 和CL_DEVICE_COUNT在帮助中都没有出现。PS.结果2012.04.22 22:02:51 ParallelTester_00-01 x_cycle (EURUSD,M30) OpenCL init OK! Device number = 0 2012.04.22 22:03:03 ParallelTester_00-01 x_cycle (EURUSD,M30) GPU time = 11357 ms 2012.04.22 22:03:03 ParallelTester_00-01 x_cycle (EURUSD,M30) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:03:03 ParallelTester_00-01 x_cycle (EURUSD,M30) Result on Gpu МахResult==1.68487 at 9198 pass 2012.04.22 22:03:03 ParallelTester_00-01 x_cycle (EURUSD,M30) OpenCL init OK! Device number = 1 2012.04.22 22:03:04 ParallelTester_00-01 x_cycle (EURUSD,M30) GPU time = 998 ms 2012.04.22 22:03:04 ParallelTester_00-01 x_cycle (EURUSD,M30) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:03:04 ParallelTester_00-01 x_cycle (EURUSD,M30) Result on Gpu МахResult==1.68487 at 9198 pass 2012.04.22 22:10:13 ParallelTester_00-01 x_cycle (EURUSD,M30) CPU time = 428706 ms 2012.04.22 22:10:13 ParallelTester_00-01 x_cycle (EURUSD,M30) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.04.22 22:10:13 ParallelTester_00-01 x_cycle (EURUSD,M30) Result on Cpu МахResult==1.68487 at 9198 pass 2012.04.22 22:10:13 ParallelTester_00-01 x_cycle (EURUSD,M30) CpuTime/GpuTime = 429.565130260521 Sceptic Philozoff 2012.04.22 21:22 #578 fyords: 顺便说一下,帮助中没有CLGetInfoInteger()或CL_DEVICE_COUNT。PS.结果更新你的帮助,你的帮助已经过时了。2.你有 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)很可能,第一个数字11357毫秒是指主机(裸CPU),第二个数字998毫秒是指显卡。大致说来,主机上的增益顺序与AMD OpenCL上实现的加速相当一致(在4核Athlon II上约为38倍)。虽然真的不多,但应该更多,接近50-60的地方。很有可能是你的记忆力非常慢。当然,CpuTime/GpuTime的数字只针对最后计算的设备。 Dmitriy Parfenovich 2012.04.22 21:36 #579 Mathemat:1.更新帮助,你的帮助显然已经过时了。2.当然,CpuTime/GpuTime的数字只针对最后计算的设备。1.手动更新,一切都在那里,谢谢你,但帮助没有和终端及元编辑一起更新吗?2.是的,但仍然很好)。 Sceptic Philozoff 2012.04.22 21:41 #580 papaklass: 以你的硬件来说,这几乎是清楚的,你只有主机是一个OpenCL设备。另一方面,很奇怪,你之前怎么会得到这么高的结果(第51页)。2012.04.08 13:28:01 ParallelTester_00-02-s16x7x3k (EURUSD,H1) OpenCL init OK! 2012.04.08 13:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) GPU time = 7145 ms 2012.04.08 13:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Соunt inticators = 16; Count history bars = 50000; Count pass = 4096 2012.04.08 13:28:08 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Result on Gpu МахResult==3.86669 at 1682 pass 2012.04.08 13:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) CPU time = 422888 ms 2012.04.08 13:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Соunt inticators = 16; Count history bars = 50000; Count pass = 4096 2012.04.08 13:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) Result on Cpu МахResult==3.86669 at 1682 pass 2012.04.08 13:35:11 ParallelTester_00-02-s16x7x3k (EURUSD,H1) CpuTime/GpuTime = 59.18656403079076由于某些原因,我无法将光标从代码插入 中取出。如果我引用某人的话,也是同样的胡言乱语。这是一个论坛的错误吗?更有可能是论坛引擎的错误,但并不总是如此。我通常点击HTML栏,在最后一个标签后手动插入几个字母。然后我再回到帖子的视觉编辑模式。 1...515253545556575859606162636465...70 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
好了,最后,我们一直在等你。如果你准备进行实验,请安装英特尔OpenCL Runtime(链接 说明)。
在不改变任何内容的情况下运行该脚本,并像你以前的同事那样从 "专家 "标签中发布日志。脚本在你的宝石上运行大约需要3分钟,请忍耐一下。同时,我们将看到OpenCL是如何在最酷的裸机Sandy Bridge石头上运行的。
如果你没有耐心,或者你认为这超出了你的能力,那也没关系,没有冒犯的意思。
P.S. 这个脚本的目的是看看在没有任何独立视频龙的情况下,一个裸露的CPU能做什么。我怀疑在正确插入Intel Runtime的情况下,这个脚本的加速度会在200左右甚至略高。
有些人怀疑英特尔OpenCL Runtime是否正确安装。
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1347.164383561644
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==0.9316 at 10253 pass
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:17:51 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 295029 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 4
有人怀疑英特尔OpenCL Runtime是否正确安装。
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==0.9316 at 10253 pass
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:12:56 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 219 ms
你可能将CLContextCreate()参数设置为0以外的其他参数。好吧,我让你不要改变任何东西!我的意思是说,你不要改变任何东西。我们已经知道你的双头视频龙的能力。但似乎你甚至有好几个。
根据我的粗略估计,在CLContextCreate(0),你应该有CPU时间=180000毫秒和GPU时间=900毫秒(大约)。对于这样一个CPU来说,你的第一次运行时间 是很奇怪的。也许它被其他任务所累?
你能不能按我所附的脚本运行--不改变 代码中的 任何内容 ,一个字符也不 改变?
P.S. 当然,也许device = 0对应的不是CPU而是其他东西。好吧,那就实验吧(从0到3)。理论上,最高的GPU时间应该对应于裸露的CPU,即主机。
你没有把零作为CLContextCreate()的一个参数,而是设置了其他的参数。好吧,我让你不要改变任何东西!我的意思是说,你不要改变任何东西。我们已经知道你的双头视频龙的能力。但你似乎有好几个。
根据我的粗略估计,在CLContextCreate(0),你应该有CPU时间=180000毫秒,GPU时间=900毫秒(大约)的数字。对于这样一个CPU来说,你的第一次运行时间 是很奇怪的。也许它被其他任务所累?
你能不能按我所附的脚本运行--不改变任何东西,不 改变 任何一个字符?
P.S. 当然,也许device = 0对应的不是CPU而是其他东西。好吧,那就实验吧(从0到3)。理论上,最高的GPU时间应该对应于裸露的CPU,即主机。
我没有改变参数!按原样运行。
根据视频,是的,它是2x590。
我又用CLContextCreate(0)1,2,3试了一下,结果和以前一样。
问题可能出在英特尔OpenCL Runtime 上。
没有改变参数!按原样开始。
用CLContextCreate(0)1,2,3再次运行,结果与之前一样。所有的结果都是一样的?我不相信...那么,这个脚本不可能在光秃秃的CPU上有GPU时间=219ms。在最好的情况下,它将是约800毫秒,但不是约200毫秒。
这是我的典型结果(我有奔腾G840 CPU)。
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CpuTime/GpuTime = 88.40817091454272
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Result on Cpu МахResult==1.05116 at 7785 pass
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:23:09 ParallelTester_00-01x (EURUSD,H1) CPU time = 235873 ms
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Result on Gpu МахResult==1.05116 at 7785 pass
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 22:19:13 ParallelTester_00-01x (EURUSD,H1) GPU time = 2668 ms
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) OpenCL init OK!
2012.04.22 22:19:10 ParallelTester_00-01x (EURUSD,H1) CLGetInfoInteger() returned 1
好吧,让我们继续前进。
所有的结果都是一样的吗?我不相信...那么,这个脚本不可能在光秃秃的CPU上有GPU时间=219ms。最好是约800毫秒,但不是约200毫秒。
好吧,算了。
我刚刚用CLContextCreate(0)又试了一次
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CpuTime/GpuTime = 1265.405982905983
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Result on Cpu МахResult==1.48772 at 2051 pass
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:27:15 ParallelTester_00-01x__3 (EURUSD,H1) CPU time = 296105 ms
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Result on Gpu МахResult==1.48772 at 2051 pass
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 01:22:19 ParallelTester_00-01x__3 (EURUSD,H1) GPU time = 234 ms
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) OpenCL init OK!
2012.04.23 01:22:18 ParallelTester_00-01x__3 (EURUSD,H1) CLGetInfoInteger() returned 5
这显然是在独立的卡上,而不是在CPU上:在仿真上有这样的速度是很难做到的。而你拥有的设备数量已经是5个,这让人毛骨悚然。
如果你不介意运行稍作修改的代码,请在这里公布结果。在代码中,各种OpenCL设备的计算被放入一个循环中(它们应该是快速的),而x86上的计算,即最长的计算,只被执行一次。它将会很长,但脚本本身只执行一次。
我意识到,我已经让你感到厌烦了。但无论如何,这将是支持团队的好信息。我有一个有趣的结果 ))明 白了,不是设备的总数,而是当前的数量。
虽然计算正在进行中,但我将在准备好后公布。
顺便说一下,CLGetInfoInteger() 和CL_DEVICE_COUNT在帮助中都没有出现。
PS.结果
PS.结果
更新你的帮助,你的帮助已经过时了。
2.你有
很可能,第一个数字11357毫秒是指主机(裸CPU),第二个数字998毫秒是指显卡。大致说来,主机上的增益顺序与AMD OpenCL上实现的加速相当一致(在4核Athlon II上约为38倍)。虽然真的不多,但应该更多,接近50-60的地方。很有可能是你的记忆力非常慢。
当然,CpuTime/GpuTime的数字只针对最后计算的设备。
1.更新帮助,你的帮助显然已经过时了。
2.当然,CpuTime/GpuTime的数字只针对最后计算的设备。
1.手动更新,一切都在那里,谢谢你,但帮助没有和终端及元编辑一起更新吗?
2.是的,但仍然很好)。
以你的硬件来说,这几乎是清楚的,你只有主机是一个OpenCL设备。另一方面,很奇怪,你之前怎么会得到这么高的结果(第51页)。
由于某些原因,我无法将光标从代码插入 中取出。如果我引用某人的话,也是同样的胡言乱语。这是一个论坛的错误吗?
更有可能是论坛引擎的错误,但并不总是如此。我通常点击HTML栏,在最后一个标签后手动插入几个字母。然后我再回到帖子的视觉编辑模式。