2017-09-16 119 views

回答

0

不确定你的意思是“并行计算”,主要是我们在c/C++中实现,但也支持cuda以及mkl和电源芯片。

由于你的问题有多广泛,我只能假设你并不是真的在寻找这个问题的“深层”答案,但我可以告诉你,我们有你期望的流行语,比如openmp,blas/lapack,sparse,..

所以编辑我的答案有点:“矢量化”的Numpy操作只是为了循环在C中。 Python固有地具有较慢的循环,并且在很大程度上是一种慢速语言

另一个编辑:如果没有大量的c代码埋在那里,我们实际上不可能支持gpus。没有JNI,我们也无法做到这一点。 Nd4j绝对不是一个纯java库。

我们在运行所有的真正的逻辑:https://github.com/deeplearning4j/libnd4j

所以是:中,从效果,我们有“基于C++的for循环”中就有不错。 for循环使用cuda和openmp/mkl进行多线程或“并行化”。

+0

而这不是*答案*。这个问题本身是相当明确的 –

+0

例如,如果我使用python并使用循环对数组执行某些操作,则需要大量时间。但是,如果我使用numpy进行这些操作,则执行速度非常快。所以,问题是:ND4J可以提供这种可能性吗? –

+0

我不同意坦率地说这不是一个“答案”。按照这种方式,Numpy操作是并行化的。这些事情通过SIMD和openmp发生。 我仍然支持我之前的回答:“parlalelized”是一个可能意味着多线程的过载术语,或者他应该*使用的术语:“矢量化” –