非常感谢!
我一直在等待一篇关于 OpenCL 的文章。
我现在就去读。:)
我要读一读。:)
你可能不太需要它。你应该已经都知道了。
下一篇文章会很严肃,会有很多关于硬件的内容。
1.你可能不太需要它。你应该已经知道如何做这些事情了。
2.下一篇文章会很严肃,会有很多关于硬件的内容。
1.我需要它。
2. 很好!
我仍然不清楚的问题是:为什么你把在 CPU 上执行 OCL 程序称为 "仿真"? 如果有相应的设备驱动程序,并且所有处理器内核都已加载,CPU 只是 OCL 程序可以运行的设备之一,另外还有 GPU。
- www.mql5.com
因为这是仿真,缓慢的仿真。在 CPU 中(感谢英特尔,它有一个智能编译器,如果你没有明确禁止,它就会寻找矢量化),并行化是通过 (S)SSEx 指令和可能的依赖性分析完成的,而 GPU 有更多与 SIMD 引擎相关的可能性。此外,还有更宽的总线和更快的内存,尤其是本地内存和专用内存。
关于硬件。主要建议适用于 AMD 硬件。但其中许多术语稍作修改后也适用于 NVidia 硬件。
OpenCL(开放计算语言)是一个开放的免版税标准,用于CPU、GPU和其他处理器之间的通用并行编程,使软件开发人员能够便携、高效地访问这些异构处理平台的强大功能。
请看--这里没有提到用于 GPU 的 OCL 和用于其他设备的仿真模式。OpenCL 是一种通用编程语言,用于在任何 拥有一个以上计算核心并支持 OCL 的设备 上组织并行计算。它不是为 GPU 定制的 CUDA 或 ATI Stream。
此外,在某些情况下,CPU 上的并行化和 OCL 计算甚至比 GPU 更快。现在,我强制要求在程序设置中选择设备,因为计算速度直接取决于处理的数据量和计算的 "严重程度"(也取决于输入设置)--有时在 GPU 上更快,有时在 CPU 上更快。
OpenCL(开放计算语言)是一个开放的免版税标准,用于CPU、GPU和其他处理器的通用并行编程,使软件开发人员能够便携、高效地访问这些异构处理平台的强大功能。
请看--这里没有提到用于 GPU 的 OCL 和用于其他设备的仿真模式。OpenCL 是一种通用编程语言,用于在任何 拥有一个以上计算核心并支持 OCL 的设备 上组织并行计算。它不是专为 GPU 设计的 CUDA 或 ATI Stream。
也许你在某些方面是对的,因为 CPU 被视为一种设备。但一些数据表明,这更像是模拟。例如,有人怀疑在 CPU 的情况下,将缓冲区写入设备内存 CLBufferWrite() 只是为了 "打勾",因为 CPU 只有一个全局内存。不过,CPU 也有缓存,但我不知道缓存的情况和工作原理。
此外,在某些情况下,CPU 上的并行化和 OCL 计算甚至比 GPU 上的还要快。
是的,有这样的情况,比如说,dot( )的标量乘积在 CPU 上更快。但如果是在酷睿 2 双核处理器和比链接中的显卡更强大的显卡之间进行比较,我不会去猜测哪个更快。尤其是在优化算法的情况下。不管你怎么说,CPU 和 GPU 的算法是不同的。
什么是提前启用,请说明。如果是 OpenCL - 已经启用。所有实验均直接在 MetaEditor 5 中进行。
附注:最主要的是,通过 OCL,编码员实际上可以使用以前无法使用的东西。它们是
- (S)SSEx 可以包含在 Visual Studio 中,但如果没有 OCL 就无法包含在MQL5 中(不包括 dlls)。
- 访问离散 GPU 上的计算,这可以额外加速 MQL5 中单核上可以完成的计算,而无需任何 dll 类型的技巧。
。
我的意思是适应云计算,如果你想象每个处理器内核都有许多 "饥饿的蜜蜂 "图形加速器的帮助,并与许多计算机联网,那将会非常酷、非常快。
一半的工作已经完成,现在只需打开云计算....。
新文章 OpenCL:并行世界的桥梁已发布:
2012 年 1 月末,从事 MetaTrader 5 开发业务的软件开发公司宣布 MQL5 可向 OpenCL 提供原生支持。本文通过一个示例说明了 MQL5 环境下 OpenCL 的编程基础知识,并列举了几个示例,讲述了为提高运行速度所做的朴素优化。
作者:Sceptic Philozoff