2017-09-16 62 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」是一個可能意味着多線程的過載術語,或者他應該*使用的術語:「矢量化」 –