ArrayFire adalah perpustakaan tensor tujuan umum yang menyederhanakan proses pengembangan perangkat lunak untuk arsitektur paralel yang ditemukan di CPU, GPU, dan perangkat akselerasi perangkat keras lainnya. Perpustakaan melayani pengguna di setiap pasar komputasi teknis.
Beberapa manfaat arrayfire meliputi:
ArrayFire memberi pengembang perangkat lunak abstraksi data tingkat tinggi yang berada di akselerator, objek af::array . Pengembang menulis kode yang melakukan operasi pada array arrayfire, yang, pada gilirannya, secara otomatis diterjemahkan ke dalam kernel yang hampir optimal yang dijalankan pada perangkat komputasi.
ArrayFire berjalan pada perangkat mulai dari ponsel berdaya rendah hingga superkomputer berkekuatan tinggi GPU. Arrayfire berjalan di CPU dari semua vendor utama (Intel, AMD, ARM), GPU dari produsen terkemuka (AMD, Intel, Nvidia, dan Qualcomm), serta berbagai perangkat akselerator lainnya di Windows, Mac, dan Linux.
Instruksi untuk menginstal atau membangun arrayfire dari sumber dapat ditemukan di wiki.
Kunjungi halaman Wikipedia untuk deskripsi Game of Life Conway.

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
}Kode sumber lengkap dapat ditemukan di sini.

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 );Kode sumber lengkap dapat ditemukan di sini.
Untuk lebih banyak contoh kode, kunjungi examples/ direktori.
Anda dapat menemukan dokumentasi lengkap di sini.
Tautan cepat:
Arrayfire memiliki beberapa API Bahasa yang Dipelihara Resmi dan Komunitas:
† †
† Komunitas memelihara pembungkus
Pembungkus yang sedang berlangsung
Komunitas pengembang arrayfire mengundang Anda untuk membangun bersama kami jika Anda tertarik dan dapat menulis fungsi tensor berkinerja terbaik. Bersama -sama kita dapat memenuhi misi arrayfire untuk komputasi ilmiah yang cepat untuk semua.
Kontribusi apa pun dipersilakan! Silakan merujuk ke wiki dan kode perilaku kami untuk mempelajari lebih lanjut tentang bagaimana Anda dapat terlibat dengan komunitas arrayfire melalui sponsor, komitmen pengembang, atau tata kelola.
Jika Anda mendistribusikan kembali arrayfire, silakan ikuti persyaratan yang ditetapkan dalam lisensi. Jika Anda ingin mengutip arrayfire dalam publikasi akademik, silakan gunakan dokumen kutipan berikut.
ArrayFire Development didanai oleh Accelereyes LLC dan beberapa pihak ketiga, silakan lihat daftar pengakuan untuk ekspresi terima kasih kami.
Tanda literal "arrayfire" dan logo arrayfire adalah merek dagang dari Accelereyes LLC (DBA Arrayfire). Jika Anda ingin menggunakan salah satu tanda ini dalam proyek Anda sendiri, silakan berkonsultasi dengan kebijakan merek dagang Arrayfire