文章 "如何安装并使用 OpenCL 计算" - 页 6

 

有人能更新一下 RX 580 / 570 吗?

我有这两款显卡,但没有详细说明如何使用这两款显卡的烹饪手册。

非常感谢。

 
目前,我试图让 OpenCL 在 GTX1070 上运行,但 Metatrader 没有提及硬件,我也无法在某处激活它。目前的 MT5 应该是怎样的?
 
hao xue:

有人能更新一下 RX 580 / 570 吗?

我有这两款显卡,但没有详细说明如何使用这两款显卡的烹饪手册。

非常感谢。

我不知道为什么终端无法识别 RX580,但 opencl 可以工作。你可以试试这段代码:

void OnStart()
  {
//---
   Print("TERMINAL_OPENCL_SUPPORT = ",TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
   
   int cl_ctx; 
//--- 初始化 OpenCL 上下文 
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE) 
     { 
      Print("OpenCL not found"); 
      return; 
     } 
//--- 显示 OpenCL 设备的一般信息 
   Print("OpenCL type: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE))); 
   Print("OpenCL vendor ID: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID)); 
   Print("OpenCL units: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS)); 
   Print("OpenCL freq: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY)," MHz"); 
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes"); 
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes"); 

  }
 

大家好


我在装有 AMD 530 和 NVIDEA gtx 1060 的电脑上尝试了 lensflare 上的代码,但没有成功。我的 EA 报告支持的设备为 0。有人遇到过同样的问题吗?谢谢!


void OnStart()
  {
//---
   Print("TERMINAL_OPENCL_SUPPORT = ",TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
   
   int cl_ctx; 
//--- 初始化 OpenCL 上下文 
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE) 
     { 
      Print("OpenCL not found"); 
      return; 
     } 
//--- 显示 OpenCL 设备的一般信息 
   Print("OpenCL type: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE))); 
   Print("OpenCL vendor ID: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID)); 
   Print("OpenCL units: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS)); 
   Print("OpenCL freq: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY)," MHz"); 
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes"); 
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes"); 

  }
 

如何选择使用哪个 openCL 处理器?
我似乎有 CPU + Nvidia + 英特尔,而根据主页,英特尔 GPU 运行速度更快。

另外,因为我的 Nvidia 运行了一会儿,然后在我试图退出 EA 时就崩溃了。

 

>为了演示在 MQL5 中使用 OpenCL 的优势,我们编写了脚本 OpenCL_Sample.mq5,该脚本通过某个集合上的两个变量计算一个函数的值,并在图表窗口中使用图形标签(OBJ_BITMAP_LABEL) 显示结果。

该示例非常有趣,但却毫无用处.....。

有谁能举例说明如何在 OpenCL .... 上优化标准智能交易系统?

总的来说,我认为这篇文章没什么用,整个世界都在向框架(如 CNTK)发展MQL5 的开发人员应该用 MQL5 编写代码,而不是 OpenCL/CUDA,所有显卡的内核(CU)都应该在可用内核列表中作为普通内核显示,以便进行优化,仅此而已。

我想是的...

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BITMAP_LABEL
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_BITMAP_LABEL
  • www.mql5.com
//| Создает объект "Графическая метка"                               |               chart_ID=0,                               sub_window=0,                             x=0,                                      y=0,                                      width=0,                                  height=0,                 ...
 
Boris Egorov:

MQL5 开发人员应使用 MQL5 而不是 OpenCL/CUDA 编写代码,所有显卡的内核(CU)都应在可用内核列表中作为普通内核显示,以便进行优化,仅此而已。

我想是的...

如果您有机会在 MQL5 中编写代码并在 GPU 上计算任务,为什么还要大吵大闹呢?

另一个问题是,您没有意识到哪些任务可以在 GPU 上解决,哪些不能。

这里有一篇很好的文章,我自己在年初读过https://habr.com/ru/company/combox/blog/425731/。

如果你能将优化任务并行化,那就使用 GPU。

 
Igor Makanu:

就像可以用 MQL5 编写代码并在 GPU 上计算任务一样


就像在 python/# 中一样。

没有 OpenCL,有的只是框架连接,你只需告诉它在什么上计算,因此对我个人而言,在 GPU 上建立一个农场比在 CPU 上更容易。

 
Boris Egorov:

就像在 python/# 中一样。

那里没有 OpenCL,它是一个框架连接

一切都是正确的,框架是为 GPU 任务定制的,我用这种方式测试过 tensorflow。


那么问题不在于 MQL5,而在于 MQL5框架的创建者--唉,他们(框架)并不存在,我自己也深受其害、

或者说,只有少数几个 - SB 中的 alglib 以及许多关于与第三方语言集成的文章。

也就是说,正如开发人员所写的那样--自己写吧,没有现成的解决方案。

 
Igor Makanu:

一切都是正确的,框架是为 GPU 任务定制的,我用这种方式测试了 tensorflow。


那么问题就不是针对 MQL5,而是针对 MQL5 框架的创建者--唉,他们(框架)并不存在,我自己也深受其害、

或者说,只有少数几个--SB 中的 alglib 以及大量关于与第三方语言集成的文章。

也就是说,正如开发人员所写的那样--自己写吧,没有现成的解决方案。

不完全是这样。

开发人员很优秀,也做了很多工作,他们实现了 Fuzzy、Alglib 和 python,但问题是为什么?他们为什么要花费这些酷炫的开发人员的宝贵时间来实现这一切,因为事实上这些东西根本没用。

当然,我们说的是神经网络,Alglib 是一个极其有限的框架,而且如果我没记错的话,它还不是免费的。

我对 python 也不满意...想想如何将 EA 的逻辑转移到完全不同的语言 ....然后再返回 ....没办法......那这痔疮还有什么意义?

因此,有必要从一开始就实现 cntk 或 tenzorflow...这样就不需要标准优化器,也不需要遗传算法,还能在 GPU 上顺利计算......