問題タブ [arrayfire]
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 - Python フリーズを使用した arrayfire
acclereyes から Arrayfire ライブラリをダウンロードしました。Arrayfire は CUDA ベースのライブラリであり、私は python から使用しています。python で可能な限り単純なコードを実行しようとしました:
プロンプトがハングし、CPU 使用率は約 50% です (デュアル コア CPU を使用しています)。提供された例を実行すると同じことが起こります。これを停止する唯一の方法は、プロセス マネージャーからプロセスを終了することです。何が問題なのですか? 誰でも私を助けることができますか?
python - NaN に対して Arrayfire 配列をチェックする
Python で Arrayfire を使用していますが、入力配列に NaN が含まれており、NAN を合計として返すため、af.sum() 関数を使用できません。
numpy.nansum/numpy.nan_to_num の使用は、速度の問題のためオプションではありません。
これらの NaN を arrayfire で浮動小数点ゼロに変換する方法が必要なだけです。
cuda - ArrayFire 対生の CUDA プログラミング?
私は GPU プログラミングにまったく慣れていませんが、計算量の多いタスクがあるため、可能なパフォーマンス向上のために GPU に目を向けました。
ArrayFire Free版でプログラムを書き換えてみました。マルチスレッドが有効になっている私の CPU ルーチンよりも確かに高速ですが、期待したほどではなく (つまり、100% 未満の速度向上)、返された結果は正しくありません (CPU ルーチンと比較して 1% 未満のエラーであると仮定すると、 CPU ルーチンの結果は正しい)。
私のタスクは主に大きな行列 (300MB ~ 500MB サイズ) での要素単位の float-32 数学演算であり、if-thes/switch-cases などはほとんどありません。パフォーマンスのボトルネックはおそらく CPU と GPU メモリ間の帯域幅であると思います。テストした GPU は、3 GB のビデオ メモリを搭載した GeForce 580GTX です。
タスクに ArrayFire を使用する代わりに、未加工の CUDA コード (CUBLAS などと平均的な最適化を使用) を記述した場合、最適化の余地はまだありますか? NVIDIA 最適化ガイドをいくつか読みました。データアクセスを高速化し、バンク競合を減らすためのメモリアクセスのトリックがいくつかあるようです。ArrayFire はこれらの一般的なトリックを自動的に使用しますか?
cmake - ArrayFireとVTK、... CMakeを使用してコンパイルするには?
私は現在、ディレクトリから3D .vtkファイルのセットを読み取り、PCAを実装できるように3DポイントをArrayFire配列に格納するコードをc++で作成しています。
問題は、cmakeでVTKをコンパイルする必要があることです。しかし、私がそれを行うと、arrayFireはエラーLNK2019とエラーLNK2001を出します。
私はMSDNでこのエラーを確認しましたが、それを解決する方法がまだわかりません。
ArrayFireをCMakefileに追加して、VTKとarrayFireを安心して構築する方法を知っている人はいますか?
ありがとう。
c++-cli - アンマネージド データをマネージド コードで渡しますか?
ArrayFire array
オブジェクトを使用して 3D ボリューム レンダリングを制御する Windows フォーム アプリケーションを構築しています。array
は管理されていません。フォーム コンストラクターで、ボリュームを読み込んでレンダリングします。
Trackbar
ボリュームの不透明度と対応するスクロール イベント ハンドラーを制御する があります。array
ただし、ボリュームをスクロール イベント ハンドラーに渡す方法がわからないTrackbar
ため、ボリュームを再レンダリングできます。
array
どうやら、マネージ クラスはアンマネージ属性を持つことができないため、ボリュームをフォームの属性にすることはできません。
これを行う最善の方法は何ですか?
image-processing - ArrayFireがメモリ不足でNVIDIAFermiで畳み込みを実行していますか?
ArrayFireを使用して、9000x9000ピクセルの3チャンネル画像(約75MB)で畳み込みを実行しようとしています。私のGPUは、1536MBのRAMを搭載したNVIDIAGTX480です。ArrayFireは入力画像に75MB、出力画像に約75MBを使用すると思います。ただし、ArrayFireはしばらくの間実行され、最終的にはメモリが不足していると表示されます。
1536MBのメモリを搭載したGPUで75MBの画像に対して畳み込みを実行すると、ArrayFireのメモリが不足します。なぜこれが起こるのですか、そして私はそれについて何ができますか?
コード:
システム構成と注意事項:
- ArrayFire 1.9
- Ubuntu 10.04
- CUDA 5.0
- 1536MBのRAMを搭載したNVIDIAGTX480(Fermi)GPU
helloworld
およびその他のArrayFireの例は正しく機能します- ArrayFireの畳み込みは、小さい画像(512x512ピクセルなど)でも問題ありません。
parallel-processing - ArrayFireでdouble2配列でseqを使用する場合のfloat2への降格
ArrayFireライブラリを利用して次のテストコードを使用しています。
そして、すべてが正しくコンパイルされ、実行されます。
ただし、上記の関数を次のように変更します
次のランタイムエラーメッセージが表示されます
src / gena / gtypes.cpp:112:エラー:タイプcuComplexの配列からcuDoubleComplexを要求しました
反対側で、私が行を変更した場合
に
すべてが再び正常に実行されます。の使用に関連してfloat2への降格があるようですseq
。上記の問題は、次のようなものを使用しても解消seq(0,N-1,f64)
されません(ArrayFireで許可されているかどうかさえわかりません)。
double2
処理を継続し、降格を回避するにはどうすればよいfloat2
ですか?
c++ - ArrayFire の最大固有値 (および対応する固有ベクトル)
正方行列 が与えられた場合、の 5 つの最大固有値を含む対角行列と、列が対応する固有ベクトルである行列A
を取得する必要があります。Matlab では、コードは. ArrayFire C++ に同様の関数はありますか?D
A
V
[V,D] = eigs(A,5)
ArrayFire ではaf::eigen(Values,Vectors,A)
. の要素の順序は何Values
ですか? あるテストでは、要素をValues
大きさの大きい順に並べ替えましたが、他のケースでValues
は、大きさの小さい順に並べ替えました。基本的に、最大の大きさの固有値に対応する 5 つの固有ベクトルを抽出する必要があります。sort
これを達成するために関数を使用する必要がありますか?
更新 簡単な例を次に示します。
arrayfire - gfor構造はどのようにcudaスレッドを割り当てますか?
gfor 構造体が CUDA スレッドを割り当てる方法を教えてください。ご存じのとおり、Arrayfire では gfor を使用して並列計算を行うことができます。しかし、CUDA のスレッドは限られているので、GPU ハードウェア アーキテクチャに従って gfor 構造を再設計する必要があるため、Arrayfire コードを改善するにはどうすればよいか知りたいです。