問題タブ [numba-pro]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - numbapro モジュールに関連付けられているパスを変更するには?
numbapro をインポートする Python スクリプトを実行しようとしていますが、サイト パッケージの場所へのパスが正しくありません。対話型コマンド ラインから numbapro をインポートすると問題は発生しませんが、spyder、PyCharm、またはプロンプトからこのデモ スクリプトを実行しようとすると、次のようになります。
次のエラーが表示されます。
何らかの理由で、実際にはデフォルトの anaconda サイトパッケージの場所にあるのに、numbapro サイトパッケージが /opt/... ディレクトリにあるものとして表示され続けます。どんな助けでも大歓迎です。私の環境は、Ubuntu 14.10、Python 2.7、および Anaconda 2.1.0 です。
python - Python+Numba LLVM/JIT でコンパイルされたコードと比較した Julia のパフォーマンス
http://julialang.org/などでこれまでに確認した Julia のパフォーマンス ベンチマークでは、Julia を純粋な Python または Python+NumPy と比較しています。NumPy とは異なり、SciPy は BLAS および LAPACK ライブラリを使用し、最適なマルチスレッド SIMD 実装を実現します。BLAS 関数と LAPACK 関数を呼び出したときの Julia と Python のパフォーマンスが同じであると仮定すると、BLAS または LAPACK 関数を呼び出さないコードに Numba または NumbaPro を使用した場合、Julia のパフォーマンスは CPython とどのように比較されるでしょうか?
私が気付いたことの 1 つは、Julia が LLVM v3.3 を使用しているのに対し、Numba は LLVM v3.5 上に構築された llvmlite を使用していることです。Julia の古い LLVM は、Intel Haswell (AVX2 命令) などの新しいアーキテクチャでの最適な SIMD 実装を妨げますか?
非常に大きなベクトルを処理するために、スパゲッティ コードと小さな DSP ループの両方のパフォーマンスの比較に関心があります。後者は、GPU デバイス メモリとの間でデータを移動するオーバーヘッドがあるため、GPU よりも CPU によって効率的に処理されます。単一の Intel Core-i7 CPU でのパフォーマンスのみに関心があるため、クラスターのパフォーマンスは重要ではありません。私が特に興味を持っているのは、DSP 関数の並列化された実装を作成する際の容易さと成功です。
この質問の 2 番目の部分は、Numba と NumbaPro の比較です (MKL BLAS は無視します)。Numba のデコレータtarget="parallel"
の新しいnogil
引数を考えると、 NumbaPro は本当に必要ですか?@jit
numpy - GPU に anaconda アクセラレータを適切に使用する方法
anaconda アクセラレータを使用して行列の計算を高速化しようとしています。私は非常に基本的な例から始めました: 2 つの行列を乗算します。
私の目標は、通常の numpy.dot よりも優れた GPU 乗算を取得することです。
これは、このドキュメントに基づいた私の基本的な例です。
結果が悪すぎる: GPU は CPU よりも信じられないほど遅い
もちろん、内部の numpy の実現が適切に最適化されていることは理解していますが、anaconda の公式の例が優れていることを期待していました。私はpython 3.4.3を使用していますが、次の 2 つの支援ライブラリを使用するとエラーが発生しました: http://www.cs.toronto.edu/~tijmen/gnumpy.htmlおよびhttps://github.com/rctn/gpupy
gpupy を使用すると、Python 2.7 で高速化に成功したと言わざるを得ません。
だから私の質問は次のとおりです:GPUを使用してnumpy-CPUよりも優れた行列乗算を取得するにはどうすればよいですか? anacondaの公式の例の何が問題なのですか? GPUをnumpyで使用できるpython3用の作業ライブラリがある場合は?
===
結果
残念ながら、Python 3 には簡単で適切な方法はありません。代わりに 2.7 を使用してください。
すばらしいライブラリscikits.cudaをお勧めする @rth に感謝します。
いくつかのベンチマーク (anaconda mkl を使用してテストされているため、numpy も高速です)
そして結果
numba - NumbaPro を使用してある GPU カーネルを別の GPU カーネルから呼び出す
ある GPU カーネルから別の GPU カーネルへの呼び出しを行いたい:
呼び出された関数に を追加しましたdevice=True
が、うまくいかないようです。
失敗した行により、次のエラーが発生します。TypingError: Untyped global name 'sum'
何が間違っている可能性がありますか?
python - Maxwell アーキテクチャは Numbapro でサポートされていますか?
Numbapro API を使用して Python で CUDA カーネルを実行したいと考えています。私はこのコードを持っています:
私にこのエラーを与えています:
別の numbapro の例を試しましたが、同じエラーが発生します。5.2 コンピューティング機能をサポートしていない Numbapro のバグなのか、Nvidia NVVM の問題なのかわかりません...提案はありますか?
理論的にはサポートされているはずですが、何が起こっているのかわかりません。
CUDA 7.0 およびドライバー バージョン 346.29 で Linux を使用しています。
python - GPU 計算における Numba Pro と Theano/pyautodiff の主な違いは何ですか?
Theano に基づく Numba Pro と pyautodiff はどちらも、Python コードから GPU マシン コードへの変換をサポートしています。Theano では、結果の構文ツリーのシンボリックな派生も許可されますが、これは私の質問の範囲外です。
私の質問は、いずれかのフレームワークに技術的な制限があり、コードの効率が低下するかどうかです。