OpenCl和它的工具。评论和印象。

 
考虑到Metaquotes已经改变了对GPU在分析和交易中的适用性的看法(更准确地说,GPU软件终于达到了将其引入商业程序所需的水平),我建议我们今天就可以开始在实际编程中测试OpenCL。
如果你因为在论坛上胡闹而不是在交易、建模和编程上错过了这一消息,下面是Metacquotes的举例说明。

.............................................................................................................................................................................

财务建模方面的GPU经验

http://habrahabr.ru/blogs/hi/131983/

MetaQuotes 2011年11月7日, 19:27#

MQL5中很快将包括对OpenCL的支持,它将使分布式网络中的计算性能提高数倍/数量级。

.............................................................................................................................................................................

那么,OpenCL,它是什么?

这是一种软件方法,一个解释器程序在显卡上并行运行你的程序,也就是在GPU上。

它能带来什么?

首先,它提供了可扩展性,即对可用的处理能力进行简单和廉价的扩展。购买、安装和维护十几台服务器是一回事,购买和插入3或4块额外的视频卡又是另一回事。其结果在速度上是一样的,但在金钱和时间支出上--几十倍。

其次,它允许你使用这种复杂的数学方法,而这些方法以前由于计算机的弱点是无法使用的。

第三,如果元引号不仅可以为用户,也可以为其内置的测试器栓上OpenCL,这就产生了两个奇怪的对立的观点。

(a) 对于简单的专家顾问的个别优化,一半时间根本不需要云计算网络。

(b) 使用云计算网络将为专家优化、建模和分析、应用这种复杂的数学方法打开如此广阔的前景,这在以前是根本无法想象的。

从哪里开始呢?

这里有一个AMD为开发者提供的软件SDK(含CPU驱动)(据称适用于Vista-Win7,但也适用于WinXP。在没有视频加速卡的情况下,它们可以在CPU上成功工作,而且是在英特尔的任何SSE处理器上,不仅仅是AMD)。

http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx

旧版本的AMD-ATI SDK(可在WinXP上使用)。

http://developer.amd.com/sdks/AMDAPPSDK/downloads/pages/AMDAPPSDKDownloadArchive.aspx

Nvidia的解释器程序版本随每一个现代驱动程序提供,开发环境包含在CUDA Tools-SDK包中。

http://developer.nvidia.com/opencl

英特尔的SDK版本(仅适用于Vista-Win7)。

http://software.intel.com/en-us/articles/download-intel-opencl-sdk/

注意: 为了在MetaTrader 4或5上正常工作,我们需要OpenCL1.1 或更高的版本,但不是1.0,因为只有从1.1版本开始,才能启用安全线程 支持。在MetaTrader 4或5中,线程是动态创建和销毁的,并为每个专家顾问分开。因此,要使用运行在不同货币对上的专家顾问的GPU,你需要的正是安全线程。

在实践中,这意味着只使用10.10及以上版本的ATI Catalyst驱动,或者只使用280.00以上版本的Nvidia驱动。AMD-ATI的驱动随着每个版本的推出而变得更好更快,而nVidia的驱动则变得更糟更慢。Nvidia的OpenCL 1.1版本比其1.0版本慢30-40%,也就是说,它确实比AMD的OpenCL 1.1版本慢2倍,一点都不快。

我如何检查OpenCL?

AIDA by FinalWire在显示部分显示了GPU参数和OpenCL版本。

我如何测试OpenCL的速度?

LuxMark。

http://www.luxrender.net/wiki/LuxMark

不同CPU和GPU的近似比较结果。

http://www.luxrender.net/wiki/LuxMark_Results

有时需要手动编辑render.cfg文件,以便将其与CPU-Native CPU-OpenCL测试分开。

顶级Phenom II X6 CPU的速度=2300 左右,同样的程序,但只有在8个Nvidia GTX580的怪物中才有70000,即30倍以上。即使是这样一套由8台GTX580组成的怪物,其主要成本也将减少约30倍,而功耗则比一套30台双浮点等效服务器少约40倍。此外,要同步30台服务器上的程序实例需要花费大量精力,而在OpenCL上,所有程序都在一台计算机上运行,而且是同一个单一的程序实例。

LuxMark的更多结果。

http://www.xtremesystems.org/forums/showthread.php?267385-LuxMark-The-OpenCL-CPU-amp-GPU-benchmark

更多的软件来测试OpenCL。

淘宝网

它已经从中国作者的网站上删除了(可能,它是一个战略产品),但你可以在网上找到它。(图像处理部分的某些部分只在DirectX 10及以上版本中工作,这意味着它不能在WinXP中工作)。

OpenCL还有一个特殊性:用它编程需要你背离正统编程中使用的习惯性数学抽象,并参与到为硬件优化程序中,这是不对的

一篇关于OpenCL的文章描述了其实现的大致困难。

http://habrahabr.ru/blogs/hi/125398/

AMD公司提供的关于OpenCL的介绍性视频课程。

http://developer.amd.com/documentation/videos/OpenCLTechnicalOverviewVideoSeries/Pages/default.aspx

一般来说,只要使用AMD的程序套件,任何运行SSE的计算机都足以满足OpenCL程序开发和调试的需要。此外,可以推荐Nvidia的任何GTS450....GTX580系统,因为它也有CUDA,但对于真正的快速工作,AMD-ATI卡和程序更适合--它们在多GPU配置中具有更好的可扩展性和更稳定。

OpenCL多GPU硬件是一个单独的主题。

 
AlexEro:

OpenCL多GPU硬件是一个单独的话题。

顺便说一下,这个问题已经得到了相当广泛的研究,而且还有卡片的比较特征。由臭名昭著的比特币加密货币(最初)和其他加密货币(后来)的矿工研究。

当然,在具体任务上的比较,但大致以配置和预算为导向是很容易的。

是的,现在不要去买强大的b/u显卡:)

 
TheXpert:

顺便说一下,这个问题已经得到了相当广泛的研究,而且还有卡片的比较特征。由臭名昭著的比特币加密货币(最初)和其他加密货币(后来)的矿工研究。

当然,在具体任务上的比较,但大致以配置和预算为导向是很容易的。

是的,现在不要买强大的bu视频卡:)

我只是不想用这些庞然大物来吓唬读者,分散他们对更重要的--编程的注意力。虽然我同意,但最终的结果,即真正的缩放速度可以预期,以及它看起来是怎样的,应该显示。范围很广--从啤酒箱到货架。


 

OpenCL是今天的未来。

问题:MT5大约何时能实现支持?

我更加确信,OpenCL将成为并行工作负载编程的标准。

 
微软推出的C++ AMP
shapovalovts 发表于 2011年6月16日 星期四 - 上午10:07
在AMD Fusion 11开发者峰会上,Herb Sutter宣布了一项用于开发异构C++应用程序的新技术,称为C++加速大规模并行化(AMP)。正如微软开发人员所宣称的那样,这项技术将使人们能够在CPU和GPU上使用并行代码执行能力。

AMP的主要竞争对手将是OpenCL和CUDA。萨特还强调了在云计算中使用C++ AMP的潜力。

https://www.mql5.com/ru/forum/132431

 
所以它又回到了成为专有AMP的小兄弟的状态)。
 
看起来AMP将有一个艰难的时期。OpenCL已经在全面使用。
 
缺乏想法是很难用计算能力来取代的,以快速通过或冒泡排序下一个由 "智力变态 "衍生出来的胡说八道的引号))。
 
artikul:
缺乏想法是很难用计算能力来取代的,以快速通过或冒泡排序下一个从 "智力变态 "中衍生出来的胡言乱语的引号))。

我想如果你用有价值的想法来装载这样的力量,你可以让我们的星球以相反的方向围绕太阳旋转。))
 

Articul,你不必如此断然。世界并没有静止。现代的怪物显卡,根据你的逻辑,也应该被认为是在图像处理方面缺乏想法的结果?

我自己有时也喜欢加快速度--只是不必为完成繁重的计算而等待代码调试,这些计算都在我的init()中(大约10秒)。而所有其他的计算,都是在 "飞行中 "进行的,确实运行得非常快,所以多线程在这里没有必要。

 
artikul:
缺乏想法是很难用计算能力来取代的,以快速通过或冒泡排序下一个从 "智力变态 "中衍生出来的胡言乱语的引号))。

非常真切地注意到了。而这里的同志们正在积极热身,期待着以特别变态的形式参与第六项。=)