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

 

有些东西对我来说不起作用。初始化行是好的。

2012.04.01 05:52:01    Terminal    CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.2 (2 units, 2793 MHz, 7912 Mb, version 2.0 (sse2))


(我把AMD的OpenCL 1.1,和1.2放在上面)。但现在运行该测试 时,却发现

2012.04.01 06:06:49    ParallelTester_00-01x (EURUSD,H1)    OpenCL not found.


在这之前更新英特尔图形驱动的较新版本,然后把AMD的驱动拉下来,同样的安装,然后再设置。

我现在做错了什么?

P.S. 很快Ivy就会到来,它 真正展示英特尔在集成显卡方面的能力,再加上英特尔HD 4000。看看这些图形

Сравнение между Intel Ivy Bridge и Sandy Bridge в различных бенчмарках
Сравнение между Intel Ivy Bridge и Sandy Bridge в различных бенчмарках
  • 2011.11.30
  • gagadget.com
Стали доступны утекшие в сеть слайды, где с демонстрируется разница между процессорами Intel Ivy Bridge и Sandy Bridge в бенчмарках. Если быть точным, то сравниваются модели Core i7-3770 и Core i7-2600 (i7-3770K и i7-2600K по какой-то причине не были использованы).
 
Mathemat:

我现在做错了什么?

重新编译测试,这应该有帮助。 如果没有,去找servicedesk。
 
Mathemat:

我现在做错了什么?
CLCreateContext将bool use_gpu参数改为int device(设备号)。 更正代码。
 
mql5:
在新版本中,CLContextCreate函数的参数发生了变化,使用int device代替了bool use_gpu。 ,device>=0被用作OpenCL设备序列的编号 ,device==OPENCL_DEVICE_ANY (-1),用于从所有可用的设备中自动选择 ,device==OPENCL_DEVICE_GPU (-2) ,用于从所有可用的GPU设备中自动选择





能否请你告诉我如何在代码中这样做? 我调用CLContextCreate( OPENCL_DEVICE_ANY ),在编译时得到了结果。

'OPENCL_DEVICE_ANY' - undeclared identifier    ParallelTester_00-01x.mq5    145    31


建619。

第二个问题:我在哪里可以找到最新的帮助?

P.S. 当我把参数设置为-1时,它就工作了。OPENCL_DEVICE_ANY常量还没有被声明 :)

 
在Build 619中,这些常量被重新命名为CL_DEVICE_ANY/CL_DEVICE_GPU。

但在未来的版本中,它将是CL_USE_ANY/CL_USE_GPU_ONLY。
 

我决定检查一下OpenCL在i3-2120上的工作情况(这不是我的计算,系统中没有独立的视频)。安装了AMD APP SDK,OpenCL-Z检测到一切。终端在初始化过程中显示一行。

2012.04.02 03:59:47    Terminal    CPU: GenuineIntel  Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz with OpenCL 1.1 (4 units, 3310 MHz, 8039 Mb, version 2.0)


在本帖所附的MetaDriver 代码上进行了检查,并根据619版本的最新变化稍作修改(见这里的 第一次测试)。结果。

2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    CpuTime/GpuTime = 0.741385550890401
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    Result on Cpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:43    ParallelTester_00-01x (EURUSD,H1)    CPU time = 20483 ms
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    Result on Gpu МахResult==0.79567 at 734 pass
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
2012.04.02 04:00:22    ParallelTester_00-01x (EURUSD,H1)    GPU time = 27628 ms
2012.04.02 03:59:55    ParallelTester_00-01x (EURUSD,H1)    OpenCL init OK!


在 "GPU "上运行时,处理器的所有四个线程都被完全占用,100%。

我需要做什么来获得加速?在一个基于奔腾G840的系统上(同样没有独立视频),它的速度是25倍。

P.S.我给服务台发了一条信息,但恐怕这是我的问题......我显然已经学会了如何闭着眼睛正确安装和卸载AMD APP SDK,但我想我还没有搞清楚所有的陷阱。虽然在我的系统上安装了英特尔OpenCL Runtime,但在终端中仍然无法识别它是一个OpenCL设备。

P.P.S. 原来,这是我挖出来的其他东西(https://www.mql5.com/ru/forum/6042/page25)

Ashes: 2012.03.05 17:43:16 Terminal CPU: GenuineIntel(R) Core(TM) i3-2100 CPU@ 3.10GHz with OpenCL 1.1 (4 units, 3092 MHz, 4008 Mb, version 2.0)

2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0.734767766287369
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) Cpu的结果 MachResult==1.27347 at 1125 pass
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) Count inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD, M1) CPU时间 = 21309 ms
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD,M1) Gpu上的结果 MachResult==1.27347 at 1125 pass
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) Count inticators = 16; Count history bars = 144000; Count pass = 1280
2012.03.05 17:45:02 ParallelTester_00-01x (EURUSD, M1) GPU时间 = 29001 ms
2012.03.05 17:44:33 ParallelTester_00-01x (EURUSD,M1) OpenCL init OK!

:(((

也许我有 "错误系统的手榴弹"?(我指的是AMD SDK版本)

即使是CPU也几乎与i3-2120相同...
附加的文件:
 

GPU+OpenCL毕竟是一个伟大的工具!

2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 728.1857142857143
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Cpu上的结果 MachResult==3.78654 at 50 pass
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Count inticators = 16; Count history bars = 50,000; Count pass = 1280
2012.04.08 00:41:22 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CPU时间=101946 ms
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Gpu上的结果 MachResult==3.78654 at 50 pass
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Count inticators = 16; Count history bars = 50,000; Count pass = 1280
2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU时间 = 140 ms

 
MetaDriver:

GPU+OpenCL毕竟是一个伟大的工具!

2012.04.08 00:39:40 ParallelTester_00-02-(16x7x3) (USDJPY,M30) GPU时间 = 140 ms

我建议进行测试,使GPU的计算时间不那么小。总之,140毫秒,我认为是一个太不可靠的值,尤其是GetTickCount() 的测量误差是几十毫秒。

MD,那是我太嫉妒你了。

 
Mathemat:

我建议在做测试时,让GPU的计算时间不要太小。

我没有耐心等待CPU :)越是在树林里,GPU的温度就越低。
 
MigVRN:
我没有耐心等待CPU :)越是在树林里,GPU的温度就越低。

同样,也是如此。:)

但我要在4096个蜜蜂上运行,CPU会在5分钟内计数。