ArrayFireは、CPU、GPU、およびその他のハードウェアアクセラレーションデバイスに見られる並列アーキテクチャのソフトウェア開発プロセスを簡素化する汎用テンソルライブラリです。ライブラリは、すべてのテクニカルコンピューティング市場のユーザーにサービスを提供しています。
Arrayfireの利点のいくつかは次のとおりです。
ArrayFireは、ソフトウェア開発者に、アクセラレータaf::arrayオブジェクトに存在するデータの高レベルの抽象化を提供します。開発者は、ArrayFireアレイで操作を実行するコードを作成します。これは、計算デバイスで実行される最適に近いカーネルに自動的に変換されます。
ArrayFireは、低電力携帯電話から高電力GPU対応のスーパーコンピューターに至るまでのデバイスで実行されます。 ArrayFireは、すべての主要ベンダー(Intel、AMD、ARM)、著名なメーカー(AMD、Intel、Nvidia、およびQualcomm)からのGPU、およびWindows、Mac、Linuxの他のさまざまなアクセラレータデバイスからのCPUで実行されます。
SourceからArrayFireをインストールまたは構築する手順は、Wikiにあります。
コンウェイの人生のゲームの説明については、ウィキペディアページをご覧ください。

static const float h_kernel[] = { 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 };
static const array kernel ( 3 , 3 , h_kernel, afHost);
array state = (randu( 128 , 128 , f32) > 0.5 ).as(f32); // Init state
Window myWindow ( 256 , 256 );
while (!myWindow.close()) {
array nHood = convolve (state, kernel); // Obtain neighbors
array C0 = (nHood == 2 ); // Generate conditions for life
array C1 = (nHood == 3 );
state = state * C0 + C1; // Update state
myWindow. image (state); // Display
}完全なソースコードはここにあります。

array predict ( const array &X, const array &W) {
return sigmoid ( matmul (X, W));
}
array train ( const array &X, const array &Y,
double alpha = 0.1 , double maxerr = 0.05 ,
int maxiter = 1000 , bool verbose = false ) {
array Weights = constant ( 0 , X. dims ( 1 ), Y. dims ( 1 ));
for ( int i = 0 ; i < maxiter; i++) {
array P = predict (X, Weights);
array err = Y - P;
if (mean< float >( abs (err) < maxerr) break ;
Weights += alpha * matmulTN (X, err);
}
return Weights;
}
...
array Weights = train(train_feats, train_targets);
array test_outputs = predict(test_feats, Weights);
display_results< true >(test_images, test_outputs,
test_targets, 20 );完全なソースコードはここにあります。
コードの例については、 examples/ディレクトリをご覧ください。
ここで完全なドキュメントを見つけることができます。
クイックリンク:
ArrayFireにはいくつかの公式およびコミュニティが維持されている言語APIを維持しています。
††
†コミュニティはラッパーを維持しました
進行中のラッパー
ArrayFire開発者のコミュニティは、興味があり、最高のテンソル機能を書くことができる場合、私たちと一緒に構築することを勧めます。一緒になって、すべての人のための高速科学的コンピューティングのためのArrayfireミッションを満たすことができます。
あらゆる種類の貢献は大歓迎です! Wikiと私たちの行動規範を参照して、スポンサーシップ、開発者コミット、またはガバナンスを通じてArrayfireコミュニティにどのように関与するかについて詳しく知ります。
ArrayFireを再配布する場合は、ライセンスに確立された条件に従ってください。アカデミック出版物でArrayFireを引用したい場合は、次の引用文書を使用してください。
ArrayFire開発は、Accelereyes LLCといくつかの第三者によって資金提供されています。感謝の表現については、謝辞のリストをご覧ください。
リテラルマーク「ArrayFire」とArrayFireロゴは、Accelereyes LLC(DBA ArrayFire)の商標です。これらのマークのいずれかを独自のプロジェクトで使用したい場合は、Arrayfireの商標ポリシーを参照してください