Arrayfire هي مكتبة موتر للأغراض العامة التي تبسط عملية تطوير البرمجيات للبنية المتوازية الموجودة في وحدات المعالجة المركزية ، وحدات معالجة الرسومات ، وأجهزة تسريع الأجهزة الأخرى. تخدم المكتبة المستخدمين في كل سوق حوسبة تقنية.
تشمل العديد من فوائد Arrayfire:
يوفر ArrayFire لمطوري البرامج تجريدًا عالي المستوى للبيانات الموجودة على المسرع ، كائن af::array . يكتب المطورون رمزًا يقوم بإجراء عمليات على صفائف ArrayFire ، والتي بدورها تُرجم تلقائيًا إلى حبات شبه مثالية تنفذها على الجهاز الحسابي.
يعمل Arrayfire على أجهزة تتراوح من الهواتف المحمولة منخفضة الطاقة إلى أجهزة الكمبيوتر الفائقة التي تدعم GPU عالية الطاقة. يعمل Arrayfire على وحدات المعالجة المركزية من جميع البائعين الرئيسيين (Intel ، AMD ، ARM) ، وحدات معالجة الرسومات من الشركات المصنعة البارزة (AMD ، Intel ، Nvidia ، و Qualcomm) ، بالإضافة إلى مجموعة متنوعة من أجهزة التسريع الأخرى على Windows و Mac و Linux.
يمكن العثور على تعليمات لتثبيت أو بناء arrayfire من المصدر على الويكي.
تفضل بزيارة صفحة ويكيبيديا للحصول على وصف لجنة الحياة في كونواي.

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 العديد من واجهة برمجة تطبيقات اللغة الرسمية والمجتمعية:
† †
† المجتمع المحفوظ أغلفة
مغلفة في progress
يدعوك مجتمع مطوري ArrayFire للبناء معنا إذا كنت مهتمًا وقادرًا على كتابة وظائف الموتر من أعلى الأداء. يمكننا معًا الوفاء بمهمة ArrayFire للحوسبة العلمية السريعة للجميع.
المساهمات من أي نوع مرحب بها! يرجى الرجوع إلى Wiki وقواعد سلوكنا لمعرفة المزيد حول كيفية المشاركة في مجتمع ArrayFire من خلال رعاية ، أو ارتباطات المطور ، أو الحوكمة.
إذا قمت بإعادة توزيع ArrayFire ، فيرجى اتباع الشروط المحددة في الترخيص. إذا كنت ترغب في الاستشهاد بـ ArrayFire في منشور أكاديمي ، فيرجى استخدام وثيقة الاقتباس التالية.
يتم تمويل ArrayFire Development من قبل Accelereyes LLC وعدة أطراف ثالثة ، يرجى الاطلاع على قائمة الاعترافات للتعبير عن امتناننا.
العلامة الحرفية "Arrayfire" و Arrayfire Logos هي علامات تجارية لـ Accelereyes LLC (DBA Arrayfire). إذا كنت ترغب في استخدام أي من هذه العلامات في مشروعك الخاص ، فيرجى استشارة سياسة ArrayFire التجارية