ArrayFire ist eine allgemeine Tensor-Bibliothek, die den Softwareentwicklungsprozess für die parallelen Architekturen in CPUs, GPUs und anderen Hardware-Beschleunigungsgeräten vereinfacht. Die Bibliothek dient Benutzern auf jedem technischen Computermarkt.
Einige der Vorteile von ArrayFire umfassen:
ArrayFire bietet Softwareentwicklern eine hochrangige Abstraktion von Daten, die sich auf dem af::array -Objekt befinden. Entwickler schreiben Code, der Operationen in Arrayfire-Arrays ausführt, die wiederum automatisch in nahezu optimale Kernel übersetzt werden, die auf dem Rechengerät ausgeführt werden.
ArrayFire-Läufe auf Geräten, die von Mobiltelefonen mit geringer Leistung bis hin zu GPU-fähigen Supercomputern mit hoher Leistung reichen. ArrayFire läuft mit CPUs von allen wichtigen Anbietern (Intel, AMD, ARM), GPUs der prominenten Hersteller (AMD, Intel, Nvidia und Qualcomm) sowie einer Vielzahl anderer Beschleunigungsgeräte unter Windows, Mac und Linux.
Anweisungen zum Installieren oder Erstellen von Arrayfire von der Quelle finden Sie im Wiki.
Besuchen Sie die Wikipedia -Seite, um eine Beschreibung von Conways Leben des Lebens zu erhalten.

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
}Der vollständige Quellcode finden Sie hier.

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 );Der vollständige Quellcode finden Sie hier.
Weitere Codebeispiele finden Sie in den examples/ Verzeichnissen.
Hier finden Sie die vollständige Dokumentation.
Schnelle Links:
ArrayFire hat mehrere offizielle und Communitys, die Sprach -APIs gewartet haben:
† †
† Community gepflegt Wrapper
In den progressenen Verpackungen
Die Community of ArrayFire-Entwickler lädt Sie ein, mit uns aufzubauen, wenn Sie interessiert sind und in der Lage sind, Tensor-Funktionen zu schreiben. Gemeinsam können wir die Arrayfire -Mission für Fast Scientific Computing für alle erfüllen.
Beiträge jeglicher Art sind willkommen! In dem Wiki und in unserem Verhaltenskodex finden Sie mehr darüber, wie Sie sich durch Sponsoring, Entwickler -Commits oder Governance mit der ArrayFire -Community engagieren können.
Wenn Sie Arrayfire neu verteilen, befolgen Sie bitte die in der Lizenz festgelegten Bedingungen. Wenn Sie Arrayfire in einer akademischen Veröffentlichung zitieren möchten, verwenden Sie bitte das folgende Zitierdokument.
Die Entwicklung von ArrayFire wird von Accelereyes LLC und mehreren Dritten finanziert. Weitere Informationen finden Sie in der Liste der Anerkennung für einen Ausdruck unserer Dankbarkeit.
Die Logos "Arrayfire" und Arrayfire sind die wörtlichen Marke "Arrayfire" und ArrayFire -Logos Marken von Accelereyes LLC (DBA Arrayfire). Wenn Sie eine dieser Markierungen in Ihrem eigenen Projekt verwenden möchten, wenden Sie sich bitte an die Markenpolitik von ArrayFire