以下是你可以在MetaTrader 5中直接使用OpenCL而不需要任何DLLs的情况 - 页 5 123456789101112...18 新评论 Alexey Volchanskiy 2016.12.10 15:15 #41 Renat Fatkhullin:在这种背景下,AMD看起来很有优势,不仅是因为明显更快的数学计算(采矿场通常建立在AMD上),而且还因为其开放标准的策略(他们已经开放并向公众推广了很多)。AMD显卡中OpenCL 2.0的引入使这一规格非常接近于CUDA的能力,现在为CUDA打基础根本没有意义。这是很有用的信息,而大约7年前,我在玩CUDA,认为它仍然是游戏规则。我的问题是:现在的OpenCL的调试器怎么样?我不是指MT5终端,而是指一般的MT5终端。到目前为止,我只看到英特尔公司的调试器作为Visual Studio 的一个插件,以及同一公司的独立调试器(已被取消)。但似乎是英特尔的处理器和嵌入式图形才是为了这个目的。我完全不了解如何调试并行代码--对我来说,它只是一个黑盒子。 Renat Fatkhullin 2016.12.10 16:03 #42 你只能为自己或为特定的领域使用CUDA工作,你可以要求Nvidia卡的明确存在。 是的,CUDA曾经有更多的功能。然而,随着AMD硬件推出OpenCL 2.0和新版本的OpenCL 2.1,没有必要坐在供应商的锁定之下。特别是当该供应商还压低了功能。就最大覆盖率而言,只有一个选择--OpenCL,它在普通处理器上也能正常工作。也就是说,你不必要求GPU的无条件存在,也不必为GPU和CPU写两个版本的代码。一旦写好,OpenCL代码将在不同的配置上工作。CUDA/OpenCL只能在专门的调试器中进行调试。这里不可能有什么奇迹。 Igor Volodin 2016.12.10 16:58 #43 Renat Fatkhullin:在例子中 if((cl_ctx=CLContextCreate())==INVALID_HANDLE)在具有CPU可用设备的配置中,显示 "未找到OpenCL"。否则。if((cl_ctx=CLContextCreate(CL_USE_ANY))==INVALID_HANDLE)作品*问题在于默认的设备选择 Maxim Dmitrievsky 2016.12.10 17:12 #44 我们能不能把这些都以一个漂亮的形式呈现出来,不要所有的引号? 这对感知和创造来说太不方便了。而对于神经网络,我们应该有标准的类,而且有可能像welllslab那样使用opcl instantly) "#define HL1Count " + (string)hl1NeuronCount + " \r\n" "#define HL2Count " + (string)hl2NeuronCount + " \r\n" //------------------------------------------------------------------------------------ "#define NeuronSensitivity " + (string)NeuronSensitivity_P + " \r\n" //------------------------------------------------------------------------------------ "#define sampleCount " + (string)sampleCount + " \r\n" //------------------------------------------------------------------------------------ "#define signalCount " + (string)signalCount + " \r\n" //------------------------------------------------------------------------------------ "#define StrArrSaSize " + (string)(sizeof(ArrSample) / sizeof(float)) + "\r\n" "typedef struct{float C[StrArrSaSize];} ArrSa; \r\n" //------------------------------------------------------------------------------------ "#define StrArrWeSize " + (string)(sizeof(ArrWe) / sizeof(float)) + " \r\n" "typedef struct{float C[StrArrWeSize];} ArrWe; \r\n" //------------------------------------------------------------------------------------ "#define StrArrCrSize " + (string)(sizeof(ArrCr) / sizeof(float)) + " \r\n" "typedef struct{float C[StrArrCrSize];}ArrCr; \r\n" //------------------------------------------------------------------------------------ "#define Spread " + (string)(Spread_P * Point()) + " \r\n" //------------------------------------------------------------------------------------ "#define Point " + (string)Point() + " \r\n" "#define SL " + (string)(StopLoss_P * Point()) + " \r\n" "#define TP " + (string)(TakeProfit_P * Point()) + " \r\n" //------------------------------------------------------------------------------------ " \r\n" "__kernel void Work(__global ArrSa *Sample, \r\n" " __global ArrWe *Weights, \r\n" " __global ArrCr *Result) \r\n" "{ \r\n" " int thread = get_global_id(0); \r\n" " \r\n" " //------------------Переменные нейронной сети---------------------------------\r\n" Here's what you can 使用 OpenCL 测试烛形形态 Andrey Dik 2016.12.10 17:39 #45 Maxim Dmitrievsky:我们能不能以一种漂亮的形式把这些东西都拿出来,不要所有的引号? 这对感知和创造是很尴尬的。而对于神经网络,我们应该有标准的类,而且有可能像welllslab那样使用opcl instantly) 嗯,为什么不呢?看,没有一个具体的功能是MQL不知道的。我用MQL来编写和调试OCL的这个函数,然后我就把它全部硬化了。你甚至可以用OCL做一个代码转换器,但我觉得自己做这个没有什么特别的意义。也许MQ会这样做,但我怀疑。 Yuriy Asaulenko 2016.12.10 21:09 #46 Renat Fatkhullin:这不仅展示了MQL5代码中的GPU计算,而且还展示了终端的图形功能。 附上作为脚本的完整源代码。OpenCL 1.2上的错误已被修复。 我还知道如何刺绣。而在打字机上...(c) 这些交易终端 是为了什么? Konstantin Grebenshikov 2016.12.10 21:53 #47 它是否会转到云端的代理? Alexey Volchanskiy 2016.12.10 22:21 #48 GKS: 它是否会转到云端的代理? 没有 Andrey Dik 2016.12.10 22:40 #49 GKS: 它是否会转到云端的代理? 关于交易、自动交易系统和策略测试的论坛 以下是你可以在MetaTrader 5终端中直接使用OpenCL做的事情,不需要任何DLL Renat Fatkhullin, 2016.12.10 14:49 很快,我们将允许在MQL5云计算网络 中使用OpenCL,至少在CPU实现方面。 Alexey Volchanskiy 2016.12.11 13:39 #50 所有这些都很好,但是!OCL有一个很大的问题,一般来说,所有的并行化手段都有一个很大的问题--很少有算法可以有效地被并行化。为什么在并行计算的 例子中,如此受欢迎的是模拟波浪,球落在金字塔上的破坏,也就是说,一切可以分解成小块并在自己的处理器上计算的。当然,对于fora/bear来说,这些是神经网络、各种傅里叶变换、小波、过滤器等,所有这些都是完全平行的。但有一些线性算法根本不能被并行化。作为一项规则,当下一步算法的结果是基于上一步的结果。我写这篇文章是为了那些认为我买了两块很酷的显卡,一切都会在我的测试器中正常工作的人。 123456789101112...18 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在这种背景下,AMD看起来很有优势,不仅是因为明显更快的数学计算(采矿场通常建立在AMD上),而且还因为其开放标准的策略(他们已经开放并向公众推广了很多)。AMD显卡中OpenCL 2.0的引入使这一规格非常接近于CUDA的能力,现在为CUDA打基础根本没有意义。
这是很有用的信息,而大约7年前,我在玩CUDA,认为它仍然是游戏规则。
我的问题是:现在的OpenCL的调试器怎么样?我不是指MT5终端,而是指一般的MT5终端。到目前为止,我只看到英特尔公司的调试器作为Visual Studio 的一个插件,以及同一公司的独立调试器(已被取消)。但似乎是英特尔的处理器和嵌入式图形才是为了这个目的。我完全不了解如何调试并行代码--对我来说,它只是一个黑盒子。
你只能为自己或为特定的领域使用CUDA工作,你可以要求Nvidia卡的明确存在。
是的,CUDA曾经有更多的功能。然而,随着AMD硬件推出OpenCL 2.0和新版本的OpenCL 2.1,没有必要坐在供应商的锁定之下。特别是当该供应商还压低了功能。
就最大覆盖率而言,只有一个选择--OpenCL,它在普通处理器上也能正常工作。也就是说,你不必要求GPU的无条件存在,也不必为GPU和CPU写两个版本的代码。一旦写好,OpenCL代码将在不同的配置上工作。
CUDA/OpenCL只能在专门的调试器中进行调试。这里不可能有什么奇迹。
在例子中
在具有CPU可用设备的配置中,显示 "未找到OpenCL"。
否则。
作品
*问题在于默认的设备选择
我们能不能把这些都以一个漂亮的形式呈现出来,不要所有的引号? 这对感知和创造来说太不方便了。
而对于神经网络,我们应该有标准的类,而且有可能像welllslab那样使用opcl instantly)
"#define HL2Count " + (string)hl2NeuronCount + " \r\n"
//------------------------------------------------------------------------------------
"#define NeuronSensitivity " + (string)NeuronSensitivity_P + " \r\n"
//------------------------------------------------------------------------------------
"#define sampleCount " + (string)sampleCount + " \r\n"
//------------------------------------------------------------------------------------
"#define signalCount " + (string)signalCount + " \r\n"
//------------------------------------------------------------------------------------
"#define StrArrSaSize " + (string)(sizeof(ArrSample) / sizeof(float)) + "\r\n"
"typedef struct{float C[StrArrSaSize];} ArrSa; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrWeSize " + (string)(sizeof(ArrWe) / sizeof(float)) + " \r\n"
"typedef struct{float C[StrArrWeSize];} ArrWe; \r\n"
//------------------------------------------------------------------------------------
"#define StrArrCrSize " + (string)(sizeof(ArrCr) / sizeof(float)) + " \r\n"
"typedef struct{float C[StrArrCrSize];}ArrCr; \r\n"
//------------------------------------------------------------------------------------
"#define Spread " + (string)(Spread_P * Point()) + " \r\n"
//------------------------------------------------------------------------------------
"#define Point " + (string)Point() + " \r\n"
"#define SL " + (string)(StopLoss_P * Point()) + " \r\n"
"#define TP " + (string)(TakeProfit_P * Point()) + " \r\n"
//------------------------------------------------------------------------------------
" \r\n"
"__kernel void Work(__global ArrSa *Sample, \r\n"
" __global ArrWe *Weights, \r\n"
" __global ArrCr *Result) \r\n"
"{ \r\n"
" int thread = get_global_id(0); \r\n"
" \r\n"
" //------------------Переменные нейронной сети---------------------------------\r\n"
我们能不能以一种漂亮的形式把这些东西都拿出来,不要所有的引号? 这对感知和创造是很尴尬的。
而对于神经网络,我们应该有标准的类,而且有可能像welllslab那样使用opcl instantly)
这不仅展示了MQL5代码中的GPU计算,而且还展示了终端的图形功能。
附上作为脚本的完整源代码。OpenCL 1.2上的错误已被修复。
它是否会转到云端的代理?
它是否会转到云端的代理?
关于交易、自动交易系统和策略测试的论坛
以下是你可以在MetaTrader 5终端中直接使用OpenCL做的事情,不需要任何DLL
Renat Fatkhullin, 2016.12.10 14:49
很快,我们将允许在MQL5云计算网络 中使用OpenCL,至少在CPU实现方面。所有这些都很好,但是!OCL有一个很大的问题,一般来说,所有的并行化手段都有一个很大的问题--很少有算法可以有效地被并行化。为什么在并行计算的 例子中,如此受欢迎的是模拟波浪,球落在金字塔上的破坏,也就是说,一切可以分解成小块并在自己的处理器上计算的。
当然,对于fora/bear来说,这些是神经网络、各种傅里叶变换、小波、过滤器等,所有这些都是完全平行的。但有一些线性算法根本不能被并行化。作为一项规则,当下一步算法的结果是基于上一步的结果。
我写这篇文章是为了那些认为我买了两块很酷的显卡,一切都会在我的测试器中正常工作的人。