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

 
casinonsk: 第二个仍处于0负荷状态。

那第三个呢?还是没有?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Count inticators = 16; Count history bars = 144000; Count pass = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Gpu上的结果 MachResult==0.0 at 0 pass

我的印象是测试出了一些问题。哦,把Count pass设置成一个较低的值,1280就足够了。

而CPU与GPU的比较结果在哪里?

 
joo:


在CountPass 262144处,显卡驱动程序无意识地崩溃了。然而,它又立即上升。

我通过Tychkov教授的方法发现,CountPass不能超过6628025,CountBars为10,否则MQL编译器会拒绝编译并产生错误。

'inds' - 全局变量部分过大 ParallelTester_00-01x.mq5 86 7

当CountBars较小时,编译器会跳过CountPas的更多可怕的值。

2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       GPU time = 717 ms

哦,亲爱的!

MQL编译器如何知道GPU上根本没有足够的内存(或不在GPU上?)?- 看起来显卡驱动程序崩溃的原因是内存不足


弗拉基米尔

而我为什么要给每只苍蝇相同的数组(内存的消耗与CountPass的数量成正比)?- 让他们从一个共同的数组中获取数据。

 
joo:

弗拉基米尔

为什么我应该给每只苍蝇相同的数组(内存的消耗与CountPass的数量成正比)?- 让他们从一个共同的数组中获取数据。

他们已经有一个共同的价格和指标阵列。

而在长度为CountPass的数组中,有非网格(一个优化参数)。它对每个网格都是单独的。

--

...但我喜欢你的思维方式。:)

 
joo:

我通过Tychkov教授的方法发现,CountPass不能大于6628025,CountBars为10,否则MQL编译器会拒绝编译并产生错误。

'inds' - 全局变量部分过大 ParallelTester_00-01x.mq5 86 7

当CountBars较小时,编译器会跳过CountPas的更多可怕的值。

哦,亲爱的!

MQL编译器如何知道GPU上根本没有足够的内存(或不在GPU上?)?- 看起来显卡驱动程序会因为内存不足而崩溃。

А!所以,在我的代码中,有一个基本的加号(第82行)。

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

修复它并获得几乎四倍 的 "内存提升" .....nasharoo...!!:)))))))))))))

// 在这样的时候,它让我觉得自己像个圣诞父亲......;)

 
MetaDriver:

// 在这样的时候,我觉得自己就像圣诞老人......;)

// 如果你是圣诞老人,我是谁?;)
 
我看了一下这五个人的英文论坛。 一个类似的主题,但所表现出的活动和兴趣与俄语论坛上的活动和兴趣无法相比。
 
Mathemat:

那第三个呢?还是没有?

看起来好像是测试出了一些问题。并将Count pass设置为一个较小的值,1280就足够了。

而CPU与GPU的比较结果在哪里?

CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 OpenCL init OK!
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 GPU时间 = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Count inticators = 16; Count history bars = 144000; Count pass = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Gpu上的结果 MachResult==0.92493 at 1190 passed
 

必须 有一个MQL函数来返回显卡的温度。否则,这将是一个让人焦头烂额的好办法。不是在你自己身上,而是在客户身上。

// 如果没有MQL-功能,你将不得不使用DLL,这不是好事--市场被切断和其他不便。

 
MetaDriver:

你必须有一个MQL函数来返回显卡的温度。否则,这将是一个让人焦头烂额的好办法。不是在你自己身上,所以在客户那边。
它还应该返回极限温度,并在接近极限温度时自行减慢计算速度。有不同的显卡,有不同的散热方式。
 
MetaDriver:

必须 有一个MQL函数来返回显卡的温度。否则,这将是一个让人焦头烂额的好办法。不是在你自己身上,而是在客户身上。

// 如果没有MQL-函数,我们将不得不使用DLL,这不是好事--市场被切断了,还有其他的不便之处。

电脑游戏不关心GPU的温度,并把它装入地狱,什么也不发生--显卡在工作。而且没有玩家会想到要求游戏发行商自己放慢FPS,以免破坏GPU的性能。对游戏玩家的比喻是直接的--我们需要速度,如果有必要,还应该额外照顾到温度(额外的冷却系统)。

那么你也需要MQL功能来返回CPU温度。否则,处理器会被烧坏。


FPS如果是可行的,为什么不呢?- 当然,这也无妨。