视觉特效 - 页 2 123456789...12 新评论 Nikolai Semko 2020.03.10 01:57 #11 Rorschach: https://www.mql5.com/ru/forum/227736 转移到着色器。前15秒,源代码在cpu上运行,然后gpu版本运行。 "你需要在编译前将Canvas.mqh文件中的数组m_pixels[]从protected:移到public:" 嗯,有意思。结果是同样的速度。可能是因为没有3D转换。 需要用这个代码 试试。 ZSY使用这种设计,所以你不必修复原始库 #define protected public #include <Canvas\Canvas.mqh> #undef protected SZY 哦,不!对不起--在代码中犯了一个错误,因此没有注意到CPU部分根本就没有运行。纠正了它。 结果--通过GPU,速度提高了2.5倍。 非常高兴看到。非常感谢你的这种实施。只是稍微调整了一下。 附加的文件: TestSheders.mq5 8 kb Nikolai Semko 2020.03.10 04:08 #12 Rorschach: https://www.mql5.com/ru/forum/227736 转移到着色器。前15秒在cpu上运行源代码,然后在gpu上运行版本。 用这段代码做同样的事情很有意思,看看性能增益是如何根据计算的复杂性(增加重力中心)而变化的。 这段代码没有使用正弦阵列来加速,它只是计算正弦。而且你还可以改变旋转的重力中心的数量。 附加的文件: Swirl2.mq5 5 kb Rorschach 2020.03.10 12:42 #13 Nikolai Semko: 需要用这个代码 试试。 我想完全在gpu上进行指标计算,我需要弄清楚如何传输这种数据量。 尼古拉-森科。 其结果是通过GPU的速度提高了2.5倍。 尼古拉-森科。 这段代码没有使用正弦阵列来加速,它只是简单地计算正弦。 XRGB(uchar(128+127*sin(d*45)),uchar(128+127*sin(d*70)),uchar(128+127*sin(d*25))); 顺便说一下,我在我的着色器中使用了这个公式,所以速度提高了~10倍。 尼古拉-森科。 用这段代码做同样的事情,看看性能增益是如何根据计算的复杂性(增加重力中心)而改变的,这很有意思。 我会努力做到这一点。 Nikolai Semko 2020.03.10 14:34 #14 Rorschach: 我想完全在gpu上做指标计算,我需要弄清楚如何传输如此大量的数据。 顺便说一下,我在着色器中使用了这个公式,所以加速度是~10倍。 我会试着做一个。 我认为结果应该是鼓舞人心的。 是的,它确实是MQL5的一个非常酷的补充感谢MQ团队的努力。 通过简单地在程序中加入该资源,利用显卡资源,数学计算的 性能可以提高许多倍。这就卸载了CPU本身的负担。也就是说,市场的一个超级选择。 而如果OpenCL需要用户采取一些行动来安装软件,那么DirectX已经默认安装在Windows中了。而最令人惊奇的是--我看了一下使用DirectX时ex5文件增加了多少,完全没有看到文件的增加。非常酷!!!。让我们学习和使用它。 Rorschach 2020.03.10 16:53 #15 Nikolai Semko: 我认为结果应该是鼓舞人心的。 是的,它确实是MQL5的一个非常酷的补充感谢MQ团队的努力。 通过简单地在程序中加入该资源,利用显卡资源,数学计算的 性能可以提高许多倍。这就卸载了CPU本身的负担。也就是说,市场的一个超级选择。 而如果OpenCL需要用户采取一些行动来安装软件,那么DirectX已经默认安装在Windows中了。而最令人惊奇的是--我看了看使用DirectX时ex5文件增加了多少,完全没有看到文件的增加。非常酷!!!。让我们学习和使用它。 顺便说一句,是的,DX比OCL的功能更全面。同样的能力+3D。有一个CPU模式,你不需要为它在CPU上装一个驱动。 Rorschach 2020.03.11 00:40 #16 Rorschach: 顺便说一下,我在着色器中使用了这个公式,所以加速度是~10倍。 还是要数2.5次。CPU受到了优化的影响,但GPU却没有。 尼古拉-森科。 用这段代码做同样的事情很有意思,看看性能增益如何根据计算的复杂性(重力中心的增加)而变化。 这段代码没有使用正弦阵列来加速,它只是计算正弦。而且你还可以改变旋转的重力中心的数量。 我启用了优化。该代码被重新安排为3个周期,以使其更容易转移。限制是512个中心。默认情况下,它直接在GPU上运行。 附加的文件: Swirl2_GPU.mq5 9 kb pixel.zip 1 kb Nikolai Semko 2020.03.11 03:08 #17 Rorschach: 你还是要数2.5次。CPU受到了优化的影响,但GPU没有受到影响。 我启用了优化。我把代码重写为3个周期,以使其更容易移植。我已将其限制在512个中心。默认情况下,它直接在GPU上运行。 非常感谢您! 仅仅在简单的计算上,2.5倍也是一个非常好的结果。在3D方面,我认为结果会更加陡峭。 Serhii Shevchuk 2020.03.11 04:36 #18 Rorschach: 你还是要数2.5次。CPU受到了优化的影响,但GPU没有受到影响。 我启用了优化。我把代码重新排列成3个循环,使之更容易移植。我们已将其限制在512个中心。默认情况下,它直接在GPU上运行。 你问的是OpenCl的实现。有东西出来了。请原谅我的代码,我没有时间去清理它。最主要的是,它是有效的。 __kernel void Func(int N, __global double *XP, __global double *YP, __global uchar *h, __global uint *buf) { size_t X = get_global_id(0); size_t Width = get_global_size(0); size_t Y = get_global_id(1); float2 p; double D=0,S1=0,S2=0; for(int w=0;w<N;w++){ p.x = XP[w]-X; p.y = YP[w]-Y; D = fast_length(p); S2+=D; if(w<N/2) S1+=D; } // double d=S1/S2; buf[Y*Width+X] = upsample(upsample((uchar)0xFF,(uchar)h[(int)(d*11520)]),upsample((uchar)h[(int)(d*17920)],(uchar)h[(int)(d*6400)])); } 附加的文件: Swirl2_OCL.mq5 14 kb test_002.zip 1 kb Nikolai Semko 2020.03.11 06:28 #19 Serhii Shevchuk: 你要求一个OpenCl的实现。我有办法了。原谅我的代码,我没有时间去刷它。最主要的是,它是有效的。 哇哦!哇!说实话,对我来说是意想不到的。在我这块普通的显卡上,增益超过10倍。 非常感谢您! Rorschach 2020.03.11 09:18 #20 Serhii Shevchuk: 你要求一个OpenCl的实现。我有办法了。原谅我的代码,我没有时间去刷它。最主要的是,它是有效的。 非常感谢您! 你的计算结果是在双倍的吗?那么结果就会特别令人印象深刻。 123456789...12 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
https://www.mql5.com/ru/forum/227736
转移到着色器。前15秒,源代码在cpu上运行,然后gpu版本运行。
"你需要在编译前将Canvas.mqh文件中的数组m_pixels[]从protected:移到public:"
嗯,有意思。结果是同样的速度。可能是因为没有3D转换。
需要用这个代码 试试。
ZSY使用这种设计,所以你不必修复原始库
SZY
哦,不!对不起--在代码中犯了一个错误,因此没有注意到CPU部分根本就没有运行。纠正了它。
结果--通过GPU,速度提高了2.5倍。
非常高兴看到。非常感谢你的这种实施。只是稍微调整了一下。
https://www.mql5.com/ru/forum/227736
转移到着色器。前15秒在cpu上运行源代码,然后在gpu上运行版本。
用这段代码做同样的事情很有意思,看看性能增益是如何根据计算的复杂性(增加重力中心)而变化的。
这段代码没有使用正弦阵列来加速,它只是计算正弦。而且你还可以改变旋转的重力中心的数量。
需要用这个代码 试试。
我想完全在gpu上进行指标计算,我需要弄清楚如何传输这种数据量。
其结果是通过GPU的速度提高了2.5倍。
尼古拉-森科。
这段代码没有使用正弦阵列来加速,它只是简单地计算正弦。
顺便说一下,我在我的着色器中使用了这个公式,所以速度提高了~10倍。
用这段代码做同样的事情,看看性能增益是如何根据计算的复杂性(增加重力中心)而改变的,这很有意思。
我会努力做到这一点。
我想完全在gpu上做指标计算,我需要弄清楚如何传输如此大量的数据。
顺便说一下,我在着色器中使用了这个公式,所以加速度是~10倍。
我会试着做一个。
我认为结果应该是鼓舞人心的。
是的,它确实是MQL5的一个非常酷的补充感谢MQ团队的努力。
通过简单地在程序中加入该资源,利用显卡资源,数学计算的 性能可以提高许多倍。这就卸载了CPU本身的负担。也就是说,市场的一个超级选择。
而如果OpenCL需要用户采取一些行动来安装软件,那么DirectX已经默认安装在Windows中了。而最令人惊奇的是--我看了一下使用DirectX时ex5文件增加了多少,完全没有看到文件的增加。非常酷!!!。让我们学习和使用它。
我认为结果应该是鼓舞人心的。
是的,它确实是MQL5的一个非常酷的补充感谢MQ团队的努力。
通过简单地在程序中加入该资源,利用显卡资源,数学计算的 性能可以提高许多倍。这就卸载了CPU本身的负担。也就是说,市场的一个超级选择。
而如果OpenCL需要用户采取一些行动来安装软件,那么DirectX已经默认安装在Windows中了。而最令人惊奇的是--我看了看使用DirectX时ex5文件增加了多少,完全没有看到文件的增加。非常酷!!!。让我们学习和使用它。
顺便说一句,是的,DX比OCL的功能更全面。同样的能力+3D。有一个CPU模式,你不需要为它在CPU上装一个驱动。
顺便说一下,我在着色器中使用了这个公式,所以加速度是~10倍。
还是要数2.5次。CPU受到了优化的影响,但GPU却没有。
用这段代码做同样的事情很有意思,看看性能增益如何根据计算的复杂性(重力中心的增加)而变化。
这段代码没有使用正弦阵列来加速,它只是计算正弦。而且你还可以改变旋转的重力中心的数量。
我启用了优化。该代码被重新安排为3个周期,以使其更容易转移。限制是512个中心。默认情况下,它直接在GPU上运行。
你还是要数2.5次。CPU受到了优化的影响,但GPU没有受到影响。
我启用了优化。我把代码重写为3个周期,以使其更容易移植。我已将其限制在512个中心。默认情况下,它直接在GPU上运行。
非常感谢您!
仅仅在简单的计算上,2.5倍也是一个非常好的结果。在3D方面,我认为结果会更加陡峭。
你还是要数2.5次。CPU受到了优化的影响,但GPU没有受到影响。
我启用了优化。我把代码重新排列成3个循环,使之更容易移植。我们已将其限制在512个中心。默认情况下,它直接在GPU上运行。
你问的是OpenCl的实现。有东西出来了。请原谅我的代码,我没有时间去清理它。最主要的是,它是有效的。
你要求一个OpenCl的实现。我有办法了。原谅我的代码,我没有时间去刷它。最主要的是,它是有效的。
哇哦!哇!说实话,对我来说是意想不到的。在我这块普通的显卡上,增益超过10倍。
非常感谢您!
你要求一个OpenCl的实现。我有办法了。原谅我的代码,我没有时间去刷它。最主要的是,它是有效的。
非常感谢您!
你的计算结果是在双倍的吗?那么结果就会特别令人印象深刻。