OpenCL:MQL5中的内部实现测试 - 页 25 1...181920212223242526272829303132...70 新评论 Sceptic Philozoff 2012.03.05 15:31 #241 Ashes:2012.03.05 17:43:16 终端 CPU: GenuineIntel(R) Core(TM) i3-2100 CPU @ 3.10GHz with OpenCL 1.1 (4 units, 3092 MHz, 4008 Mb, version 2.0)2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369[...]也许我有 "错误系统的手榴弹"?(我指的是AMD SDK版本)。棒极了。我从网上找到的最普通的商店购买了核心、主板、内存和冷却器。总共花了大约6千美元。也许他们无意中从未来塞给我一块鹅卵石。也许是因为SDK的原因。我认为这不值得在内存上出错,默认情况下,它只能是DDR-III。而且不管是不是单通道,它肯定会有影响,但不是那么可怕的。 Dmitriy Parfenovich 2012.03.05 15:36 #242 Mathemat:有趣的是。fyords 卡的性能更强(GeForce GT 440),而计算时间则长了一个数量级。我不知道计算速度是否取决于分辨率(我有1920x1080),因为桌面也吃东西(Aero主题)?也许这就是为什么它需要更长的时间来计算。 Sceptic Philozoff 2012.03.05 15:38 #243 fyords: 我想知道计算速度是否取决于分辨率(我有1920x1080),因为桌面也会吃东西(Aero主题)?是的,有可能。你的Windows Aero性能指数显示什么?这是我的。 我不需要那些打蝴蝶结的东西,所以它被关掉了。P.S. 检查了。没有任何影响。 Dmitriy Parfenovich 2012.03.05 15:44 #244 上次测试(2011年12月3日)正常通过,但现在出现了一些故障,但视频的得分是6.8。也许这就是问题所在(故障)。新的硬件没有安装。可能是新硬件的问题,那我就等新的版本,到时再做测试。 Serge 2012.03.05 21:13 #245 x32x64cpu-z Vladimir Gomonov 2012.03.06 00:57 #246 我添加了哑巴遗传学,并将其循环到最大化。 我得到了一个优化器,在相当于500天历史的5分钟开盘价 的模拟数据上拟合了一个单层网格(每个输入有16个指标)。请测试。在这一点上,我认为搅拌成功完成,因为优化器的测试是不充分的。;)谁的速度慢了(与其他人相比)--现在你知道该为什么而保存了;-)因此,我的结果。2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Full time of optimization == 14 sec 305 ms 2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Optimization is closing. Best result == 1.91356 at 92 generation. 2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Generation 92: MaxResult==1.91356 2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Generation 91: MaxResult==1.91356 2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Generation 90: MaxResult==1.91356 2012.03.06 03:44:23 ParallelOptimazer_00-02 (EURUSD,M30) Generation 89: MaxResult==1.91356 ............. .........让我最后一次解释我的手指:这是一个原始的神经网络专家顾问的完整优化周期。 // 好吧,几乎是一个专家顾问。在这个 "专家顾问 "的代码中进行额外的计算,以便它能够足够真实地计算出利润。 //不会超过(在账户时间上。通过智能实现)那些已经存在的计算。也就是说,减速可以是,例如,两方面的。 附加的文件: ParallelOptimazer_00-02.mq5 16 kb Anatoli Kazharski 2012.03.06 01:54 #247 MetaDriver:我添加了愚蠢的遗传学,并在最大化中进行循环。 我得到了一个优化器,在相当于500天历史的5分钟开盘价 的模拟数据上拟合一个单层网格(每个输入有16个指标)。请测试。...谢谢。))... NJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:06 Generation 36: MaxResult==2.29423 NO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:08 Generation 37: MaxResult==2.29426 FE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:10 Generation 38: MaxResult==2.29426 PJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 39: MaxResult==2.29427 HO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 40: MaxResult==2.29427 QE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:14 Generation 41: MaxResult==2.29427 EJ 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 42: MaxResult==2.29427 LP 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 43: MaxResult==2.29427 KE 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Generation 44: MaxResult==2.29427 DI 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Optimization is closing. Best result == 2.29427 at 44 generation. KO 0 ParallelOptimazer_00-02 (GBPJPY,M5) 03:46:15 Full time of optimization == 81 sec 917 ms Sceptic Philozoff 2012.03.06 02:33 #248 MetaDriver,非常感谢你。你已经完成了你的拉票工作,获得了A。同时,你给了我一个机会来检查我没有独立显卡的 "无马 "配置,并感到非常、非常惊讶。运行你的优化器。它是这样的。2012.03.05 23:00:12 Terminal CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2793 MHz, 7912 Mb, version 2.0)2012.03.06 04:24:34 ParallelOptimazer_00-02 (EURUSD,H1) Full time of optimization == 58 sec 141 ms 2012.03.06 04:24:34 ParallelOptimazer_00-02 (EURUSD,H1) Optimization is closing. Best result == 1.87689 at 60 generation. 2012.03.06 04:24:34 ParallelOptimazer_00-02 (EURUSD,H1) Generation 60: MaxResult==1.87689 2012.03.06 04:24:33 ParallelOptimazer_00-02 (EURUSD,H1) Generation 59: MaxResult==1.87689 2012.03.06 04:24:32 ParallelOptimazer_00-02 (EURUSD,H1) Generation 58: MaxResult==1.87689 2012.03.06 04:24:31 ParallelOptimazer_00-02 (EURUSD,H1) Generation 57: MaxResult==1.87689假设每一代计算的时间差不多,我们得到与你的法拉利相比,我的 "塔齐 "大约慢了6.5-7倍,就像上次一样(每60代58.14秒~0.97秒/代)。2 Graff: 如果你能在测试期间禁用独立显卡,在石头的集成显卡上运行测试,这将是非常有趣的(同时并看看英特尔在从Lynnfield到Sandy Bridge过渡期间在这方面的进展)。 但要做到这一点,你必须下载AMD的OpenCL SDK。它不会使你的独立卡变得更糟(它有自己的驱动程序),但你可以在你的PC上获得OpenCL 1.1,尽管我不是100%确定它能工作。 但如果你拒绝,我也不会生气。 [删除] 2012.03.06 03:29 #249 从mql4论坛重新发布。同事们,你们在使用OpenCL时将会有很多困惑和碰壁。不要期待容易的结果。 有很多选择,因为OpenCL是一种软件技术,它是以视频驱动为铰链的。事实上,视频驱动成为一个小的操作系统。一路上挂着的所有东西:UltraVNC、MSI afterbufner、Agnitum OutPost网络控制互动和其他一千多个程序都会阻碍OpenCL的正常运行。 也就是说,即使你设法使OpenCL适用于简单的线程计算,仍有另一个不可逾越的障碍需要克服,即:对于复杂的计算--GPU的技术(32位部分 IEEE支持)和操作( 游戏卡超频时的精度损失)精度仍不足以满足严肃的科学计算。此外,尽管nVidia GPU在几乎所有现代显卡上都有64位双精度处理,但AMD显卡只在一些顶级系列上有。nVidia也有一个错误,但不同的是--他们与微软结盟,因此他们臭名昭著的CUDA(和OpenCL)实际上不能在例如Server 2003上工作,但同时又能在Server 2008甚至旧的Win XP上正常工作--只是由于微软的一些营销考虑。 OpenCL是用于快速流式的不准确的32位计算,如卷积或过滤。 Документация по MQL5: Основы языка / Типы данных / Приведение типов www.mql5.com Основы языка / Типы данных / Приведение типов - Документация по MQL5 Sceptic Philozoff 2012.03.06 04:55 #250 AlexEros: 游戏卡超频时的精度损失 谁会给它超频?获得10-15%的计算速度,但由于只有一只蜜蜂的死亡而有可能出现计算错误?好吧,我们不是在玩一个游戏,不画一百个顶点并不影响任何特别的东西......。 OpenCL是用于快速流式不精确的32位计算,如卷积或过滤。 让我们做一个告诫。计算必须是非常庞大和沉重的,才能考虑到精度的损失。整合是一个大规模的求和/乘法,它是一个沉重的案例。 将两个数字相加,再乘以第三个数字(每个数字都有32位的计算精度,足以满足实际计算的需要),并将结果写入某个单元,作为循环的一个迭代结果,在GPU内部不以任何其他方式使用是一回事。 另一件事是用最慢收敛的莱布尼兹数列在10亿次迭代中计算π (这个数列被普遍用来演示OpenMP技术)。 在第二种情况下,当使用32位数字时,确实存在着失去准确性的危险,因为10亿个数字被加在一起。Terver说,在99.7%的情况下,产生的误差不会超过一个数字乘以2*10^5的精度。现在这很严重--而且不总是这样。 没有人阻止开发者在一个诚实的CPU上进行几次精确的计算,以估计真实的误差。 在我看来,只要有合理的预防措施,这项技术是可以使用的。如果你使用两家制造商的现代处理器(AMD APU Llano或甚至英特尔Sandy Bridge),你可能会暂时忘记独立显卡:如果我的速度快100倍或只有25倍,这有什么区别......也不会有蜜蜂死亡,因为我也不打算对处理器进行超频。 1...181920212223242526272829303132...70 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
2012.03.05 17:43:16 终端 CPU: GenuineIntel(R) Core(TM) i3-2100 CPU @ 3.10GHz with OpenCL 1.1 (4 units, 3092 MHz, 4008 Mb, version 2.0)
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369
[...]也许我有 "错误系统的手榴弹"?(我指的是AMD SDK版本)。
棒极了。我从网上找到的最普通的商店购买了核心、主板、内存和冷却器。总共花了大约6千美元。也许他们无意中从未来塞给我一块鹅卵石。
也许是因为SDK的原因。我认为这不值得在内存上出错,默认情况下,它只能是DDR-III。而且不管是不是单通道,它肯定会有影响,但不是那么可怕的。
有趣的是。fyords 卡的性能更强(GeForce GT 440),而计算时间则长了一个数量级。
我不知道计算速度是否取决于分辨率(我有1920x1080),因为桌面也吃东西(Aero主题)?
也许这就是为什么它需要更长的时间来计算。
是的,有可能。你的Windows Aero性能指数显示什么?这是我的。
我不需要那些打蝴蝶结的东西,所以它被关掉了。
P.S. 检查了。没有任何影响。
上次测试(2011年12月3日)正常通过,但现在出现了一些故障,但视频的得分是6.8。也许这就是问题所在(故障)。新的硬件没有安装。可能是新硬件的问题,那我就等新的版本,到时再做测试。
x32
x64
cpu-z
我添加了哑巴遗传学,并将其循环到最大化。 我得到了一个优化器,在相当于500天历史的5分钟开盘价 的模拟数据上拟合了一个单层网格(每个输入有16个指标)。
请测试。
在这一点上,我认为搅拌成功完成,因为优化器的测试是不充分的。;)
谁的速度慢了(与其他人相比)--现在你知道该为什么而保存了;-)
因此,我的结果。
让我最后一次解释我的手指:这是一个原始的神经网络专家顾问的完整优化周期。
// 好吧,几乎是一个专家顾问。在这个 "专家顾问 "的代码中进行额外的计算,以便它能够足够真实地计算出利润。
//不会超过(在账户时间上。通过智能实现)那些已经存在的计算。也就是说,减速可以是,例如,两方面的。
我添加了愚蠢的遗传学,并在最大化中进行循环。 我得到了一个优化器,在相当于500天历史的5分钟开盘价 的模拟数据上拟合一个单层网格(每个输入有16个指标)。
请测试。
...
谢谢。))
MetaDriver,非常感谢你。你已经完成了你的拉票工作,获得了A。同时,你给了我一个机会来检查我没有独立显卡的 "无马 "配置,并感到非常、非常惊讶。
运行你的优化器。它是这样的。
假设每一代计算的时间差不多,我们得到与你的法拉利相比,我的 "塔齐 "大约慢了6.5-7倍,就像上次一样(每60代58.14秒~0.97秒/代)。
2 Graff: 如果你能在测试期间禁用独立显卡,在石头的集成显卡上运行测试,这将是非常有趣的(同时并看看英特尔在从Lynnfield到Sandy Bridge过渡期间在这方面的进展)。
但要做到这一点,你必须下载AMD的OpenCL SDK。它不会使你的独立卡变得更糟(它有自己的驱动程序),但你可以在你的PC上获得OpenCL 1.1,尽管我不是100%确定它能工作。
但如果你拒绝,我也不会生气。
从mql4论坛重新发布。
同事们,你们在使用OpenCL时将会有很多困惑和碰壁。不要期待容易的结果。
有很多选择,因为OpenCL是一种软件技术,它是以视频驱动为铰链的。事实上,视频驱动成为一个小的操作系统。一路上挂着的所有东西:UltraVNC、MSI afterbufner、Agnitum OutPost网络控制互动和其他一千多个程序都会阻碍OpenCL的正常运行。
也就是说,即使你设法使OpenCL适用于简单的线程计算,仍有另一个不可逾越的障碍需要克服,即:对于复杂的计算--GPU的技术(32位部分 IEEE支持)和操作( 游戏卡超频时的精度损失)精度仍不足以满足严肃的科学计算。此外,尽管nVidia GPU在几乎所有现代显卡上都有64位双精度处理,但AMD显卡只在一些顶级系列上有。nVidia也有一个错误,但不同的是--他们与微软结盟,因此他们臭名昭著的CUDA(和OpenCL)实际上不能在例如Server 2003上工作,但同时又能在Server 2008甚至旧的Win XP上正常工作--只是由于微软的一些营销考虑。
OpenCL是用于快速流式的不准确的32位计算,如卷积或过滤。谁会给它超频?获得10-15%的计算速度,但由于只有一只蜜蜂的死亡而有可能出现计算错误?好吧,我们不是在玩一个游戏,不画一百个顶点并不影响任何特别的东西......。
OpenCL是用于快速流式不精确的32位计算,如卷积或过滤。
让我们做一个告诫。计算必须是非常庞大和沉重的,才能考虑到精度的损失。整合是一个大规模的求和/乘法,它是一个沉重的案例。
将两个数字相加,再乘以第三个数字(每个数字都有32位的计算精度,足以满足实际计算的需要),并将结果写入某个单元,作为循环的一个迭代结果,在GPU内部不以任何其他方式使用是一回事。
另一件事是用最慢收敛的莱布尼兹数列在10亿次迭代中计算π (这个数列被普遍用来演示OpenMP技术)。
在第二种情况下,当使用32位数字时,确实存在着失去准确性的危险,因为10亿个数字被加在一起。Terver说,在99.7%的情况下,产生的误差不会超过一个数字乘以2*10^5的精度。现在这很严重--而且不总是这样。
没有人阻止开发者在一个诚实的CPU上进行几次精确的计算,以估计真实的误差。
在我看来,只要有合理的预防措施,这项技术是可以使用的。如果你使用两家制造商的现代处理器(AMD APU Llano或甚至英特尔Sandy Bridge),你可能会暂时忘记独立显卡:如果我的速度快100倍或只有25倍,这有什么区别......也不会有蜜蜂死亡,因为我也不打算对处理器进行超频。