"新神经 "是MetaTrader 5平台的一个开源神经网络引擎项目。 - 页 58

 
TheXpert
???
AndreiTheXpert,如果你说A,就说B。你认为NS的主要瓶颈是什么?
 
Urain
这并不重要。
 
TheXpert:
这并不重要。

我想发展,听取不同的意见并得出结论。

我想发展,我想听到不同的意见和结论。

 

GPU Cuda是一个强大的东西。我有一些代码在16个英特尔的Tracks(4核CPU)上运行了2-3小时。而在300多个CUDA核心上,它在10分钟内跑完了同样的距离,这令人印象深刻。但是,Kuda的代码开发非常复杂:人们不得不手动将代码中的所有计算分成平行线程,优化内存(不幸的是,Kuda核心的内存很少)。这超出了我的能力范围--一个聪明的程序员帮助了我。我仍然害怕他的代码,继续在我的原始(非并行化)代码中做所有的修改。我形成了一个观点:如果算法是稳定的,在有能力的程序员的帮助下,它可以被优化并转移到GPU上,像我这样自学成才的程序员是做不到这一点的。如果你立即从一个训练有素的算法的GPU代码开始,需要很长时间才能绕过它。我自己总是从一个简单的虽然不是最佳的代码开始,我自己可以理解,只有在获得预期的结果后,我才开始优化它。我是一个混乱的人,不是一个程序员 :)

 
gpwr:

GPU Cuda是一个强大的东西。我有一些代码在16个英特尔的Tracks(4核CPU)上运行了2-3小时。而在300多个CUDA核心上,它在10分钟内跑完了同样的距离,这令人印象深刻。但是Kuda的代码开发非常复杂:人们不得不手动将代码中的所有计算分割成并行线程,优化内存(不幸的是,Kuda核心的内存很少)。这超出了我的能力范围--一个聪明的程序员帮助了我。我仍然害怕他的代码,继续在我的原始(非并行化)代码中做所有的修改。我形成了一个观点:如果算法是稳定的,在有能力的程序员的帮助下,它可以被优化并转移到GPU上,像我这样自学成才的程序员是做不到这一点的。如果你立即用GPU代码开始一个训练有素的算法,将需要很长的时间来绕过它。我自己总是从一个简单的虽然不是最佳的代码开始,我自己可以理解,只有在获得预期的结果后,我才开始优化它。我是一个混乱的人,不是一个程序员 :)

因此,我们希望得到GPU计算领域专家的建议。

我对以下问题感兴趣。

1.在创建一个在GPU上运行的项目(或其各个模块)时,应该首先检查哪些方面,以避免将来重新做的麻烦过程?

2.GPU核心的内存限制是什么?有没有可能把整个运行时的代码放到内存中(几万、几十万条)?

到目前为止,这样的,一般的问题。更详细的,我想,以后会有的。

 
joo:

因此,我们希望得到GPU计算方面专家的建议。yu-sha JavaDev,ow!

对以下问题感兴趣。

1.在GPU上创建一个项目(或其单个模块)时,首先应该注意哪些方面,以避免将来重新设计时的麻烦?

2.GPU核心的内存限制是什么?有没有可能把整个运行时的代码放到内存中(几万、几十万条)?

到目前为止,这样的,一般的问题。更详细的,我想,以后会有的。

为什么要在一个 用于一般用途的项目 中使用cuda呢?一些用户有一个cuda,其他用户有一个不同的cuda,还有一些用户根本没有cuda。例如,我在工作的笔记本电脑上没有cuda。同样的网络代码会因为cuda的核数和内存的不同而有很大的不同。最好先为普通的英特尔处理器编写这个网络引擎,让大家都能使用,然后再为库达优化,如果有意义的话。顺便说一下,最好是以这样的方式创建引擎,使其在云中工作。我对云计算并不熟悉。那里面到底有没有什么地方呢?
 
gpwr:
为什么要在一个用于普通用途的项目中使用cuda?一些用户有一个cuda,其他用户有一个不同的cuda,还有一些用户根本没有cuda。例如,我在工作的笔记本电脑上没有cuda。同样的网络代码会因为cuda的核数和内存的不同而有很大的不同。最好先为普通的英特尔处理器编写这个网络引擎,让大家都能使用,然后再为库达优化,如果有意义的话。顺便说一下,最好是以这样的方式创建引擎,使其在云中工作。我对云计算并不熟悉。那里面到底有没有什么地方呢?
我同意,起初你需要做一个 没有CUDA的项目。但我对这个帖子有一个意见--你不应该只为英特尔磨刀,也不要忘记AMD。
 
gpwr:
为什么要在一个用于普通用途的项目中使用cuda?一些用户有一个cuda,其他用户有一个不同的cuda,还有一些用户根本没有cuda。例如,我在工作的笔记本电脑上没有cuda。同样的网络代码会因为cuda的核数和内存的不同而有很大的不同。最好先为普通的英特尔处理器编写这个网络引擎,让大家都能使用,然后再为库达优化,如果有意义的话。顺便说一下,最好是以这样的方式创建引擎,使其在云中工作。我对云计算并不熟悉。到底有没有地方?

MQ已经承诺在MQL5中支持OpenCL,而不是CUDA(只有nVidia的显卡)。OpenCL可以在任何具有多核处理器的硬件上运行,这包括CPU和GPU(AMD和nVidia和intel)。因此,一个 支持在CPU和GPU上进行计算的项目 对每个人都适用。

由于MQL5将支持OpenCL,这意味着云代理将支持GPU计算。

 

Urain

你不可能永远是对的,这就是开源项目的目的,要争论,要证明。

我需要它吗?
 
joo:

因此,我们希望得到GPU计算方面专家的建议。yu-sha JavaDev,ow!

对以下问题感兴趣。

1.在GPU上创建一个项目(或其单个模块)时,首先应该注意哪些方面,以避免将来重新设计时的麻烦?

2.GPU核心的内存限制是什么?原则上,是否有可能将整个可执行代码放在内存中单独的历史运行中(几万、几十万条)?

到目前为止,这样的一般问题。更详细的,我想以后会加进去。

主要内容是。

1)GPU只需要用于训练

2) 通过对一个层的神经元数值进行并行计算,以及更重要的是!--通过同时运行数百个网络,实现了性能的大幅提高。

将项目最大限度地分解为自主的组成部分--这里需要注意的是

GPU上的DDR内存足以存储几十万条的历史数据。

核心内存受到严重限制(30-50Kbytes)。直接的编程也解决了这个问题--这是值得的,因为芯片存储器以核心频率运行,访问它需要花费0个时钟周期。还有内核内存库的冲突,他们也能绕过这个问题。

Windows的功能有一个令人不快的地方--如果一次运行持续时间>~5秒,驱动程序就会重置。

因此,我们最多可以得到100-200个神经元的网络训练,用于10万条的历史。

在这种(最大)配置下,我们在GTX460 GPU上获得每秒约20-30次的优化速度。