OpenCL:MQL5中的内部实现测试 - 页 65 1...58596061626364656667686970 新评论 Sceptic Philozoff 2012.06.01 02:03 #641 fyords: 在报告中,右击 "查看",新窗口 "查询 "按钮,日志的计时正确,而且更容易阅读(对我来说)。谢谢,我没有意识到你在开报告。收益甚至更大。我很惊讶:这是一张不到80美元的预算卡!因此,NVidia在驱动上做了一些认真的工作。 Dmitriy Parfenovich 2012.06.01 08:42 #642 而这里是新的结果。2012.06.01 09:25:23 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ======================================== 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CPU time = 421203 ms 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Cpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:25 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------------------- 2012.06.01 09:32:28 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Device number = 0 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) GPU time = 11263 ms 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 37.39705229512563 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------ 2012.06.01 09:32:39 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Device number = 1 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) GPU time = 998 ms 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) CpuTime/GpuTime = 422.0470941883768 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) Result on Gpu МахResult==1.2809 at 9448 pass 2012.06.01 09:32:40 ParallelTester_00-01 x_new_cycle (EURUSD,D1) ------------我的理解是:1.纯粹的CPU,2。带有OpenCL的CPU, 3.使用OpenCL的GPU?而且还是422。Mathemat:我很惊讶:这是一张成本低于80美元的经济型卡片!这是我的梦想。因此,NVidia在驱动上做了很大的努力。我是多么惊讶啊,从泥土到财富。人们的印象是,NVidia读了这个论坛,做了类似的测试,发现了错误并修复了它们。如果测试人员 能选择在什么地方进行模拟,即不强迫写代码,那就非常好了。尽管如此,1秒(或11秒,如果视频不允许或无法使用)对7分钟的力量。 Renat Fatkhullin 2012.06.01 10:15 #643 为了在一个小的误差范围内进行测试,有一个很好的方法,那就是进行一系列的测量,并对结果进行平均,或放弃极值。但是,当然,最好是增加计算量以稳定结果。 现代操作系统和真正的多核处理器已经严重消除了通过GetTickCount 进行测量的散乱问题。我最初的评论只是针对 "GetTickCount的平均误差至少有几十毫秒 "这一错误的说法。 Andrey Dik 2012.06.01 11:30 #644 英特尔处理器的用户请注意!当安装nVidia驱动301.42时,CPU的OpenCL驱动会自动安装。 在注册表中,它看起来像这样。[HKEY_LOCAL_MACHINE/SOFTWARE/Khronos/OpenCL/Vendors]。"nvcuda.dll"=dword:00000000"amdocl.dll"=dword:00000000"amdocl64.dll"=dword:00000000"IntelOpenCL64.dll"=dword:00000000它们比英特尔的本地驱动程序(绿色突出显示)慢了大约1.5倍(红色突出显示)。你可以删除相应的注册表值,但为了以防万一,要保存该分支。 Oleksandr Olefirov 2012.06.01 23:14 #645 亲爱的管理员。好久没上你们的论坛了,可能错过了这一点。是否会有向云端需求交出显卡的实施方案? MetaQuotes 2012.06.01 23:46 #646 ilovebtc:亲爱的管理员。好久没上你们的论坛了,可能错过了这一点。是否会为了云计算的需要而实施显卡互换?几乎完成https://www.mql5.com/ru/forum/23/page15#comment_20194819.MetaTester:增加了对测试代理中使用OpenCL程序的支持。OpenCL 程序是用来在支持OpenCL 1.1或更高版本的显卡上进行计算的。现代显卡包含数百个小型专用处理器,可以同时对传入的数据流进行简单的数学运算。 OpenCL语言承担了这种并行计算的组织工作,并为某类任务提供了巨大的速度提升。 测试结束后,我们将在分布式网络中启用OpenCL。 Sceptic Philozoff 2012.06.02 05:22 #647 fyords: 我的理解是:1.纯粹的CPU,2.带有OpenCL的CPU, 3.使用OpenCL的GPU?是的,这是正确的。你是否介意运行所附的脚本并公布结果?这真的很有趣。不要害怕大量的数字。它们只是用来检查计算的正确性。 该脚本还运行了所有的设备。主要任务是将两个大矩阵相乘。设置只能在代码中改变--这一行中矩阵的线性大小_size。#define _size 2000只有当你的内存用完时才会改变它们。一个标志是在离散的GPU上运行时数组数字的差异:如果数字的差异超过10^(-4),那就是一个明显的错误。但你似乎有足够的记忆。 附加的文件: vect_v2_all_devices.mq5 17 kb Oleksandr Olefirov 2012.06.02 07:16 #648 例如,我有一块Radeon 6930显卡,它有1280个流处理器。它将如何显示在代理人名单中?作为1个设备,或所有1280。它本身的速度是10个处理器的数倍,而且奖金不是为了增加1个设备。 Dmitriy Parfenovich 2012.06.02 08:38 #649 Mathemat:你是否介意运行所附脚本并显示结果?这真的很有趣。不,这不是一个无聊的问题。我自己也对它感到好奇。我在设置中没有改变任何东西。2012.06.02 09:28:27 vect_v2_all_devices (EURUSD,D1) ======================================= 2012.06.02 09:28:27 vect_v2_all_devices (EURUSD,D1) OCL martices mul: ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000 2012.06.02 09:30:31 vect_v2_all_devices (EURUSD,D1) CPUTime = 124.504 2012.06.02 09:30:31 vect_v2_all_devices (EURUSD,D1) --------------- 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) read = 4000000 elements 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) Device = 0: time = 2.824 sec. 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 44.088 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1968,1939 ) = -5.27639246; thirdCPU[ 1968,1939 ] = -5.27639246; buf[ 1968,1939 ] = -5.27639198 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 585,810 ) = 3.74615073; thirdCPU[ 585,810 ] = 3.74615073; buf[ 585,810 ] = 3.74614906 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1131,1732 ) = -4.46934557; thirdCPU[ 1131,1732 ] = -4.46934557; buf[ 1131,1732 ] = -4.46934605 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 587,999 ) = -4.46048546; thirdCPU[ 587,999 ] = -4.46048546; buf[ 587,999 ] = -4.46048260 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 983,1903 ) = 3.42076445; thirdCPU[ 983,1903 ] = 3.42076445; buf[ 983,1903 ] = 3.42076564 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1927,313 ) = 5.62960339; thirdCPU[ 1927,313 ] = 5.62960339; buf[ 1927,313 ] = 5.62960196 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 355,1897 ) = 5.86679220; thirdCPU[ 355,1897 ] = 5.86679220; buf[ 355,1897 ] = 5.86678505 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1455,1651 ) = -3.67937088; thirdCPU[ 1455,1651 ] = -3.67937088; buf[ 1455,1651 ] = -3.67936754 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1207,856 ) = 1.30920172; thirdCPU[ 1207,856 ] = 1.30920172; buf[ 1207,856 ] = 1.30920100 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) sum( 1699,575 ) = 2.55669522; thirdCPU[ 1699,575 ] = 2.55669522; buf[ 1699,575 ] = 2.55669498 2012.06.02 09:30:38 vect_v2_all_devices (EURUSD,D1) ________________________ 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) read = 4000000 elements 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) Device = 1: time = 1.514 sec. 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 82.235 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 407,514 ) = -3.69270682; thirdCPU[ 407,514 ] = -3.69270682; buf[ 407,514 ] = -3.69270515 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1421,1902 ) = -7.43944120; thirdCPU[ 1421,1902 ] = -7.43944120; buf[ 1421,1902 ] = -7.43943167 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1197,1072 ) = -1.49989450; thirdCPU[ 1197,1072 ] = -1.49989450; buf[ 1197,1072 ] = -1.49989557 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1249,1056 ) = -0.22817086; thirdCPU[ 1249,1056 ] = -0.22817086; buf[ 1249,1056 ] = -0.22817032 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 385,1856 ) = 3.88903213; thirdCPU[ 385,1856 ] = 3.88903213; buf[ 385,1856 ] = 3.88902068 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 952,488 ) = 0.37963703; thirdCPU[ 952,488 ] = 0.37963703; buf[ 952,488 ] = 0.37963703 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 345,1572 ) = 2.28500485; thirdCPU[ 345,1572 ] = 2.28500485; buf[ 345,1572 ] = 2.28500390 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1928,468 ) = -1.35805547; thirdCPU[ 1928,468 ] = -1.35805547; buf[ 1928,468 ] = -1.35805535 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1881,1968 ) = -3.12033391; thirdCPU[ 1881,1968 ] = -3.12033391; buf[ 1881,1968 ] = -3.12033129 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) sum( 1454,575 ) = 5.97233009; thirdCPU[ 1454,575 ] = 5.97233009; buf[ 1454,575 ] = 5.97232151 2012.06.02 09:30:42 vect_v2_all_devices (EURUSD,D1) ________________________我只是不明白任何数字。你能解释一下吗?那么,至少在手指上:是好还是不好?它们在不同的设备之间是不同的,在小数点之后的5-6位数的行中已经是不同的地方。我想我明白了:这是对重复操作的多重测试,最后的时间是每个设备的平均时间。对吗? Sceptic Philozoff 2012.06.02 09:10 #650 fyords: 只是我从这些数字中什么都不明白。你能解释一下吗?就在你的手指上:它是好还是不好?它们在不同的设备之间是不同的,在小数点之后的5-6位数的行中已经是不同的地方。sum( 407,514 ) = -3.69270682; thirdCPU[ 407,514 ] = -3.69270682; buf[ 407,514 ] = -3.69270515这些只是检查数字。如果它们与0.00001重合,则一切正常。 索引是随机选择的--这是一个随机检查,以确保计算的正确性。好吧,我们不打算在这里打印对所得矩阵的所有400万个元素进行全面检查的结果,对吗?我想我明白了:这是对重复操作的多重测试,最后的时间是每个设备的平均时间。对吗? 不,这是两个大矩阵相乘的单一操作。在性能数据方面:对于这块卡来说非常好。现在我的结果。设备(从下到上--初始化顺序)。2012.06.02 05:49:25 OpenCL CPU: GenuineIntel Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version 2.0 (sse2)) 2012.06.02 05:49:25 OpenCL GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720) 2012.06.02 05:49:25 OpenCL CPU: Intel(R) Corporation Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)即先用英特尔的OCL引擎的英特尔CPU,然后是我的恐龙HD 4870,然后又是一块石头,但用AMD的引擎。脚本。2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1477,98 ) = -5.84002066; thirdCPU[ 1477,98 ] = -5.84002066; buf[ 1477,98 ] = -5.84001255 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1339,1186 ) = 0.59214997; thirdCPU[ 1339,1186 ] = 0.59214997; buf[ 1339,1186 ] = 0.59215009 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1410,1861 ) = -0.27033439; thirdCPU[ 1410,1861 ] = -0.27033439; buf[ 1410,1861 ] = -0.27033412 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 1282,459 ) = -0.87189484; thirdCPU[ 1282,459 ] = -0.87189484; buf[ 1282,459 ] = -0.87189591 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 710,1645 ) = 4.86117268; thirdCPU[ 710,1645 ] = 4.86117268; buf[ 710,1645 ] = 4.86116362 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 526,938 ) = 0.94805324; thirdCPU[ 526,938 ] = 0.94805324; buf[ 526,938 ] = 0.94805157 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 914,489 ) = 5.58242941; thirdCPU[ 914,489 ] = 5.58242941; buf[ 914,489 ] = 5.58243275 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 811,257 ) = -1.11584055; thirdCPU[ 811,257 ] = -1.11584055; buf[ 811,257 ] = -1.11583853 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 318,498 ) = 1.62952971; thirdCPU[ 318,498 ] = 1.62952971; buf[ 318,498 ] = 1.62952805 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) sum( 648,1434 ) = -5.57316303; thirdCPU[ 648,1434 ] = -5.57316303; buf[ 648,1434 ] = -5.57315731 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 29.879 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) Device = 2: time = 3.105 sec. 2012.06.02 07:38:19 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 684,439 ) = 0.21124490; thirdCPU[ 684,439 ] = 0.21124490; buf[ 684,439 ] = 0.21124732 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 795,204 ) = -1.68047857; thirdCPU[ 795,204 ] = -1.68047857; buf[ 795,204 ] = -1.68047154 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 579,1503 ) = 2.46559286; thirdCPU[ 579,1503 ] = 2.46559286; buf[ 579,1503 ] = 2.46558809 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 675,1504 ) = 0.44935751; thirdCPU[ 675,1504 ] = 0.44935751; buf[ 675,1504 ] = 0.44935691 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1251,1415 ) = -2.85569835; thirdCPU[ 1251,1415 ] = -2.85569835; buf[ 1251,1415 ] = -2.85569715 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 204,1755 ) = 0.31420049; thirdCPU[ 204,1755 ] = 0.31420049; buf[ 204,1755 ] = 0.31420231 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1999,74 ) = -2.22978306; thirdCPU[ 1999,74 ] = -2.22978306; buf[ 1999,74 ] = -2.22977948 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 436,657 ) = 0.59192652; thirdCPU[ 436,657 ] = 0.59192652; buf[ 436,657 ] = 0.59192693 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 967,922 ) = -4.91348410; thirdCPU[ 967,922 ] = -4.91348410; buf[ 967,922 ] = -4.91348314 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) sum( 1489,1175 ) = -2.48868656; thirdCPU[ 1489,1175 ] = -2.48868656; buf[ 1489,1175 ] = -2.48868561 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 179.795 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) Device = 1: time = 0.516 sec. 2012.06.02 07:38:15 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) ________________________ 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 303,1215 ) = -7.46387863; thirdCPU[ 303,1215 ] = -7.46387863; buf[ 303,1215 ] = -7.46388054 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1173,1406 ) = -5.64940453; thirdCPU[ 1173,1406 ] = -5.64940453; buf[ 1173,1406 ] = -5.64940882 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1617,1405 ) = -0.98162729; thirdCPU[ 1617,1405 ] = -0.98162729; buf[ 1617,1405 ] = -0.98162866 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 760,1003 ) = -0.97699410; thirdCPU[ 760,1003 ] = -0.97699410; buf[ 760,1003 ] = -0.97699606 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 679,793 ) = -5.41226530; thirdCPU[ 679,793 ] = -5.41226530; buf[ 679,793 ] = -5.41227150 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1345,1865 ) = 0.95630527; thirdCPU[ 1345,1865 ] = 0.95630527; buf[ 1345,1865 ] = 0.95630503 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1289,1659 ) = -3.82919979; thirdCPU[ 1289,1659 ] = -3.82919979; buf[ 1289,1659 ] = -3.82920074 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1216,1759 ) = 4.87398672; thirdCPU[ 1216,1759 ] = 4.87398672; buf[ 1216,1759 ] = 4.87398672 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1268,1060 ) = 2.78621030; thirdCPU[ 1268,1060 ] = 2.78621030; buf[ 1268,1060 ] = 2.78621435 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) sum( 1686,577 ) = -4.36586094; thirdCPU[ 1686,577 ] = -4.36586094; buf[ 1686,577 ] = -4.36585188 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 22.783 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) Device = 0: time = 4.072 sec. 2012.06.02 07:38:14 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements 2012.06.02 07:38:10 vect_v2_all_devices (EURUSD,H1) --------------- 2012.06.02 07:38:10 vect_v2_all_devices (EURUSD,H1) CPUTime = 92.774 2012.06.02 07:36:37 vect_v2_all_devices (EURUSD,H1) OCL martices mul: ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000 2012.06.02 07:36:37 vect_v2_all_devices (EURUSD,H1) ======================================= Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов www.mql5.com Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5 1...58596061626364656667686970 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢,我没有意识到你在开报告。
收益甚至更大。
我很惊讶:这是一张不到80美元的预算卡!因此,NVidia在驱动上做了一些认真的工作。
而这里是新的结果。
我的理解是:1.纯粹的CPU,2。带有OpenCL的CPU, 3.使用OpenCL的GPU?
而且还是422。
我很惊讶:这是一张成本低于80美元的经济型卡片!这是我的梦想。因此,NVidia在驱动上做了很大的努力。
我是多么惊讶啊,从泥土到财富。人们的印象是,NVidia读了这个论坛,做了类似的测试,发现了错误并修复了它们。
如果测试人员 能选择在什么地方进行模拟,即不强迫写代码,那就非常好了。尽管如此,1秒(或11秒,如果视频不允许或无法使用)对7分钟的力量。
现代操作系统和真正的多核处理器已经严重消除了通过GetTickCount 进行测量的散乱问题。我最初的评论只是针对 "GetTickCount的平均误差至少有几十毫秒 "这一错误的说法。
在注册表中,它看起来像这样。
"nvcuda.dll"=dword:00000000
"amdocl.dll"=dword:00000000
"amdocl64.dll"=dword:00000000
"IntelOpenCL64.dll"=dword:00000000
它们比英特尔的本地驱动程序(绿色突出显示)慢了大约1.5倍(红色突出显示)。
你可以删除相应的注册表值,但为了以防万一,要保存该分支。
亲爱的管理员。好久没上你们的论坛了,可能错过了这一点。
是否会有向云端需求交出显卡的实施方案?
亲爱的管理员。好久没上你们的论坛了,可能错过了这一点。
是否会为了云计算的需要而实施显卡互换?
几乎完成https://www.mql5.com/ru/forum/23/page15#comment_201948
OpenCL 程序是用来在支持OpenCL 1.1或更高版本的显卡上进行计算的。现代显卡包含数百个小型专用处理器,可以同时对传入的数据流进行简单的数学运算。 OpenCL语言承担了这种并行计算的组织工作,并为某类任务提供了巨大的速度提升。
是的,这是正确的。
你是否介意运行所附的脚本并公布结果?这真的很有趣。
不要害怕大量的数字。它们只是用来检查计算的正确性。
该脚本还运行了所有的设备。主要任务是将两个大矩阵相乘。
设置只能在代码中改变--这一行中矩阵的线性大小_size。
#define _size 2000
只有当你的内存用完时才会改变它们。一个标志是在离散的GPU上运行时数组数字的差异:如果数字的差异超过10^(-4),那就是一个明显的错误。但你似乎有足够的记忆。
例如,我有一块Radeon 6930显卡,它有1280个流处理器。它将如何显示在代理人名单中?作为1个设备,或所有1280。
它本身的速度是10个处理器的数倍,而且奖金不是为了增加1个设备。
你是否介意运行所附脚本并显示结果?这真的很有趣。
不,这不是一个无聊的问题。我自己也对它感到好奇。我在设置中没有改变任何东西。
我只是不明白任何数字。你能解释一下吗?那么,至少在手指上:是好还是不好?它们在不同的设备之间是不同的,在小数点之后的5-6位数的行中已经是不同的地方。
我想我明白了:这是对重复操作的多重测试,最后的时间是每个设备的平均时间。对吗?
这些只是检查数字。如果它们与0.00001重合,则一切正常。 索引是随机选择的--这是一个随机检查,以确保计算的正确性。好吧,我们不打算在这里打印对所得矩阵的所有400万个元素进行全面检查的结果,对吗?
我想我明白了:这是对重复操作的多重测试,最后的时间是每个设备的平均时间。对吗?
不,这是两个大矩阵相乘的单一操作。
在性能数据方面:对于这块卡来说非常好。现在我的结果。设备(从下到上--初始化顺序)。
即先用英特尔的OCL引擎的英特尔CPU,然后是我的恐龙HD 4870,然后又是一块石头,但用AMD的引擎。脚本。