問題タブ [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.

0 投票する
1 に答える
332 参照

shared-memory - ArrayFire での共有メモリの使用

ArrayFire のデータの配列をグローバル メモリではなく共有メモリに格納する必要があることを宣言する方法を知っている人はいますか? これは可能ですか?すべてのスレッドからランダムにアクセスできるようにする必要がある小さなデータ セットがあります。これは、アプリケーションの存続期間中使用可能な一定のルックアップ テーブルです。たぶん私は明らかなものを見逃しているだけかもしれませんが、ArrayFireのドキュメントを読んだりグーグルで検索したりしても、ArrayFireにデータを共有メモリに入れる必要があることを伝える方法に関する情報は見つかりませんでした.

0 投票する
0 に答える
181 参照

gpgpu - 実行速度が非常に遅い方程式の arrayfire 評価

私は、arrayfire を使用して、生物学に触発されたニューラル ネットワークをシミュレートするプロジェクトに取り組んでいます。いくつかのタイミング テストを行うところまで来ましたが、得られた結果にがっかりしました。私は、タイミング テスト ケースの最も高速で汚れのないモデルの 1 つである Izhikevich モデルを試してみることにしました。そのモデルで新しいテストを実行したところ、結果はさらに悪化しました。私が使用しているコードは以下のとおりです。派手なことをしているわけではありません。それは単なる標準的な行列代数です。ただし、たった 10 個のニューロンの方程式を 1 回評価するのに 5 秒以上かかります。その後のすべての停車時間もほぼ同じです。

コード:

異なる数のニューロンのタイミング結果を次に示します。

結果:

ニューロンの数を増やしても、大きな効果はないようです。タイムが少し下がります。ここで何か間違ったことをしていますか?より良い結果を得るために arrayfire を最適化するより良い方法はありますか?

v 方程式を pow(v, 2) の代わりに v*v を使用するように切り替えたところ、ステップに必要な時間は 3.75762 に短縮されました。ただし、それでも非常に遅いため、奇妙なことが起こっています。

[編集] 処理を分割しようとしたところ、何か新しいことがわかりました。ここに私が今使っているコードがあります。

コード:

v に再度割り当てたり、新しい変数 g に割り当てたりせずに実行すると、1 回目と 2 回目の実行の両方でステップの時間が短くなります。

結果:

経過秒数: 0.0036143

経過秒数: 0.00340621

ただし、 v = l; と入力すると、戻ると、最初に実行するときは高速ですが、それ以降は遅くなります。

結果:

経過秒数: 0.0034497

経過秒数: 2.98624

これを引き起こしている原因についてのアイデアはありますか?

[編集2]

なぜこれを行うのかはまだわかりませんが、再度使用する前に v 配列をコピーすることで回避策を見つけました。

コード:

これが今の結果です。2 回目の実行は少し遅いですが、その後は高速です。以前に比べて大幅な改善。

結果: ループ: 0 秒経過: 0.657355

ループ: 1 秒経過: 0.981287

ループ: 2 経過秒: 0.000416182

ループ: 3 経過秒: 0.000415045

ループ: 4 経過秒: 0.000421014

ループ: 5 経過秒: 0.000413339

ループ: 6 経過秒: 0.00041675

ループ: 7 経過秒: 0.000412202

ループ: 8 経過秒: 0.000473321

ループ: 9 経過秒: 0.000677432

0 投票する
1 に答える
697 参照

c++ - ArrayFire ライブラリの使用

ArrayFire ライブラリの無料版をダウンロードしました。私はそれを使って行列乗算をテストしようとしました。ただし、次のような未定義の参照がたくさんあります

当然のことながら、makefile で arrayfire ライブラリをリンクしていないことに気付きました。
ただし、ライブラリをリンクする試みはすべて失敗しました。誰かが適切なライブラリをリンクするために追加する必要があるコマンドを教えてください

lib フォルダー内のファイルは次のとおりです。

0 投票する
3 に答える
448 参照

complex-numbers - ArrayFire で架空のユニットを作成する

ArrayFire で仮想ユニットを作成したいのですが、できません。実数行列から複素数行列を作成できますが、それは純粋な虚数ではありません。af_cplx2おそらく、このページの関数を使用できます。私は次のことを考えました:

しかし、Visual Studio 2013 でランタイム エラー (未処理の例外) が発生します。どうすればよいですか? 前もって感謝します。

0 投票する
1 に答える
1072 参照

c++ - 実数配列と画像配列からの複素数配列の作成

複素数の 2D 行列を作成したいと思います。行列は、実部と虚部を含む 2 つの異なるポインターとして使用できます (MATLAB - MEX から取得)。C++ インターフェイスを使用しています。

API で最も近いのは、C インターフェイスの af_cplx2() です。

C++ インターフェイスは配列を 1 つだけ取得し、実数配列から複素数を作成します。

実部と虚部の 2 つの配列から複雑な配列を作成するにはどうすればよいでしょうか?

0 投票する
1 に答える
183 参照

c++ - Arrayfire のダブル ドット プロダクト

Arrayfireで二重内積を計算したい。二重ドット積に使用するarrayfireの関数はありますか。これは、私が実行したい私のテンソルです:

任意の提案、参照、plz.