OpenCL:MQL5中的内部实现测试 - 页 3

 
Renat:
有了澄清。
...
2) 我们支持OpenCL 1.1及以上版本,因为它支持双重类型。OpenCL 1.0版本只能用浮点运算,其精度根本不适合用于金融计算

尝试安装较新的驱动程序,尽管许多前几代的卡不支持双重操作。
我希望1.1 float也仍然支持float。 一般来说,float是不够的,但在许多特殊情况下,它是非常足够的。而额外的内存往往是昂贵的,特别是对于并行计算。
 
Graff:
今年夏天在测试JavaDev 脚本时,我们遇到了一个问题,我的显卡不支持双倍数,但用浮动数就可以驱动程序不能解决这个问题,我们需要换卡 :(
如果不支持显卡,将使用所有的处理器核心。
 

放置催化剂中心12,以前是11。已经有了结果(用红色标出)。

只是 "玩 "了一下下拉列表 "0 "到 "1",就出现了ATI图标。在这个计划的开始阶段,它没有再次消失。软件中的一个小故障似乎是:....

 
WChas:
酷!我有微星R6970 - 1536线程(代理)和技嘉HD5870(1600处理器)。在BOINC管理器中,它们可以不在crossfair中组合使用(只需插入第二块卡的一个输出或连接第二个显示器的一个输出即可。问题:在没有交叉火力的情况下,是否可以同时使用它们?

还不确定。它更多地取决于选择设备的程序本身,这就需要在代码中明确地使用每张卡。

我们将在以后发布第一个测试版时看到。

 
MetaDriver:
我希望1.1 float也仍然被支持? Float在一般情况下是不够的,但在许多特殊情况下,它甚至非常足够。而额外的内存往往非常昂贵,特别是在并行计算 中。
在OpenCL 1.1中,当然支持float。
 
WChas:
如果我理解正确,1个GPU就是一个非常强大的药剂?在这种情况下,是否可以禁用CPU代理(由于其相对于视频的低速度)?

CPU核心不能以任何方式被禁用,反正它在MQL5环境中是作为主机平台使用的。

重要的是要理解,与CPU内核的 "工作母机 "相比,GPU内核是 "一群高度专业化的蜜蜂"。GPU内核绝不可能替代传统CPU的内核。

如果EA开发者能够将任务并行化为成百上千个独立的线程,那么GPU就会有10-100倍的速度提升。但在大多数单一任务中(例如交易和指标),计算是连续的,没有机会有效地并行化进程。另外,在普通的GPU上使用双精度实数,其速度是浮点运算上取得的最高值的一半。这里有一个有趣的链接,讨论了双倍的速度下拉:http://www.gpgpu.ru/node/901

我们自己将购买不同等级的卡片来发表一个小的研究,用于计算一些关于double和float的任务。我们自己对我们能得到的东西感兴趣。

这里有一个关于不同设备上使用浮点和双倍数计算速度的小研究(完整报告:http://agora.guru.ru/hpc-h/files/017_Krivov_NvidiaGpuComparision.pdf)。你可以看到,Tesla上的双倍速度比float的峰值速度低2倍,而在像GeForce 480 GTX这样的普通卡上则几乎慢了10倍。实际上,这意味着在普通的4-8核CPU上积极使用SSE2-4和AVX进行双倍数学运算,有可能获得更好的结果。


由于并行测试运行和MQL5云计算网络 的原生理念,我们能够在交易策略优化器的顺序测试中获得百倍(极限为100-1000甚至更多)的速度提升,在遗传学中获得十倍(极限为10-20-50-100-200倍)的速度提升。但是,当涉及到单个任务内的并行性时,所有的努力都落在了GPU程序员的肩上,他们可以在数百或数千个独立的简单内核之间智能地分配任务。


还有一个细微差别--很可能在电脑上使用多个代理时,只有一个代理会被分配到使用GPU的权利。或者,如果有几个真正的物理GPU设备,它们将在代理开始时被分配到代理之间。

问题是,将一个物理设备分给多个代理是不明智的,因为由此产生的共享会导致最终性能的非线性下降。换句话说,一个GPU上的4个代理会比一个GPU上的1个代理性能差很多倍。我们的内部测试已经表明了这一点。

我们将进行更详细的测试,并提出一个能使结果最大化的解决方案。

Кофигурацыя системы на базе Tesla C2050/C2070 (C2075) | GPGPU.ru
  • www.gpgpu.ru
Здравствуйте! Возникла задача внедрения GPU-Computing для решения задач численного моделирования (симуляция и оптимизация фабрик полупроводников с помощью эвристик, докторская работа). Считать действительно много, и есть довольно хороший потенциал для распараллеливания расчетов, никакой роботы с видео, рендерингом и прочим. Помогите, пожалуйста...
 
 
 
谢谢你的澄清。
Renat:

........

由于并行测试运行和MQL5云计算网络 的原生理念,我们已经能够在策略交易优化器的顺序搜索上获得百倍(极限100-1000甚至更多)的速度,在遗传学上获得十倍(极限10-20-50-100-200倍)的速度。但是,当涉及到单个任务内的并行性时,所有的努力都将落在GPU程序员的肩上,他们可以在数百或数千个独立的简单内核之间合理地分配任务。

........

对我个人来说,重要的是优化器中的加速功能。所以我期待着必要的更新+不同显卡的性能表。
 

从MQL4.com的OpenCL线程重新发布。

https://www.mql5.com/ru/forum/137422/page6

这不是那么简单。

此外,Rinat在混淆视听:OpenCL 1.0可以很好地使用双浮点,它是一个 "公开可用的选项",得到了所有制造商的支持--但仍然不适合所有的旧地图。

http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/

"可选双精度和半浮点

OpenCL 1.0增加了对双精度和半浮点的支持,作为可选的扩展。双重 数据类型必须确认为IEEE-754双精度存储格式。

想要使用 精度的应用程序需要在内核代码中声明任何双精度数据类型之前加入#pragma OPENCL EXTENSION cl_khr_fp64 : enable 指令。这将扩展内置矢量和标量数据类型的列表,包括以下内容:....."。

它可以在策略测试器中工作,但在OpenCL 1.0专家顾问中不能工作,不是因为如Rinat所说的 "那里没有双浮点",而是如我已经提到的,因为OpenCL 1.0中没有安全线程,MT4-5中也没有线程。

OpenCL(和CUDA)在总体上有很多混乱的地方。你想要什么?毕竟,铁和无线电工程师们着手改变编程的概念。他们有一种铁的心态。

所谓的PLATFORM选择 也会有问题:程序,也就是MT或DLL或Expert Advisor,必须,就是必须手动选择平台(AMD、Nvidia、Intel),在一台电脑上可能有几个不同的平台,并将运行OpenCL内核,如果电脑有Multi-GPU,再手动选择DEVICE。OpenCL中的平台自动选择功能还没有出现。Rinat谈到了 "自动选择最强大的",但我不知道它是怎样的。在那里显示的例子中,没有平台选择,也没有设备选择(GPU、CPU)。

此外,在标准中还没有对多个GPU或GPU+CPU上的任务进行自动OpenCL并行化。让我们这样说吧:在某些版本的驱动/SDK中,AMD曾经引入了这种自动配置,但出现了一些问题,目前AMD已经关闭了这个功能。

一句话:开发和启用OpenCL程序需要一些手工操作,因此不会自动工作或通过 "用选项重新编译"。 这在实际操作中又充满了大量的停顿。这将是一项精细的工作,重要的是,我允许自己重复,不幸的是,这是犹太人导向的程序,这是错误的。 调试CUDA或OpenCL的并行程序比钢铁革命者假设的要困难得多。Nvidia甚至取消了他们的2011年秋季CUDA会议--由于驱动问题和大量关于停滞调试的投诉。因此,他们在最新的工具包中 增加了1000个新功能--如果最简单的程序甚至不能运行或运行时出现中断,那该怎么办?毕竟,他们在描述性工具中甚至没有提到OpenCL或CUDA的一半内部机制。

由于驱动或软件的兼容性,悬挂的显卡的GPU速度(单位:GigaFLOPS)为零。

OpenCl и инструменты для него. Отзывы и впечатления. - MQL4 форум
  • www.mql5.com
OpenCl и инструменты для него. Отзывы и впечатления. - MQL4 форум