CnD

البرمجيات قطة:
CnD
تفاصيل البرنامج:
الإصدار: 2012.1
تاريخ إيداع: 14 Apr 15
المطور: Andreas Kloeckner
ترخيص: حرر
شعبية: 11

Rating: nan/5 (Total Votes: 0)

وCND هو بيثون الترجمة المصدر إلى المصدر أن يجعل استخدام المصفوفات ن الأبعاد في C أكثر متعة على & nbsp؛ وسوف تتحول هذه التعليمات البرمجية.:
sgemm الفراغ (تعويم * لذلك، تعويم * ب، ج تعويم *، كثافة العمليات ن)
{
على & nbsp؛ البعد "فورتران" ل[ن، ن].
على & nbsp؛ البعد "فورتران" ب [ن، ن].
على & nbsp؛ البعد ج [ن، ن].
وnbsp؛ ل (الباحث ط = 1؛ ط <= ن، ط ++)
وnbsp؛ ل (الباحث ي = 1؛ ي <= ن، ي ++)
على & nbsp؛ {
على & nbsp؛ تعويم تمة = 0؛
وnbsp؛ ل (الباحث ك = 1؛ ك <= ن، ك ++)
على & nbsp؛ تمة + = ل[ط، ك] * B [ك، ي].
على & nbsp؛ ج [ط 1، ي-1] = تمة.
على & nbsp؛}
}
في هذه:
sgemm الفراغ (تعويم * لذلك، تعويم * ب، ج تعويم *، كثافة العمليات ن)
{
وnbsp؛ ل (الباحث ط = 1؛ ط <= ن، ط ++)
وnbsp؛ ل (الباحث ي = 1؛ ي <= ن، ي ++)
على & nbsp؛ {
على & nbsp؛ تعويم تمة = 0؛
وnbsp؛ ل (الباحث ك = 1؛ ك <= ن، ك ++)
على & nbsp؛ تمة + = ل[((ك - 1) * ((ن - 1) + 1)) + (ط - 1)] * ب [((ي - 1) * ((ن - 1) + 1) ) + (ك - 1)].
على & nbsp؛ ج [((ط - 1) * ن) + (ي - 1)] = تمة.
على & nbsp؛}
}
يمكنك أيضا أن تأخذ نظرة على سبيل المثال أكثر شمولا يظهر عدد قليل من أجراس وصفارات اضافية.
والتأثير الوحيد لإعلان البعد هو تعديل تفسير مجموعة (IDX) مشغل منخفض. الإعلانات البعد طاعة قواعد تحديد النطاق C العادية.
أود أيضا أن نلاحظ أن CND هو قوية ومترجم على أساس محلل، وليس أداة استبدال النص قشاري. يفهم كل من C99، بالإضافة إلى العديد من ملحقات جنو.
كل مواصفات المحور في إعلان البعد ديها على الشكل التالي:
بدء: نهاية: خطوة: leading_dimension
بداية يمكن حذفها. نهاية واسعة ويمكن أيضا أن يتم حذف، ولكن إذا إدخالات راءها هي لا بد من تحديدها، يجب أن تظل كولون زائدة في المكان. على سبيل المثال، مواصفات المحور: 5 ببساطة تحدد واسعة من 5. واسعة تعمل كمجرد مضاعف على المؤشر. يتم لا معقولية التحقق من أي نوع على إعلان البعد. قد كنت اطلاق النار على نفسك في القدم وبالطريقة التي تريدها.
إذا أعطيت تخطيط باسم "ج" أو لا يعطى في كل شيء، الأشياء التالية صحيحة:
- وضعت مجموعة من من أجل الصف كبير.
- يتم أخذ مؤشر نهاية أن تكون حصرية، إذا تم تحديدها.
- افتراضيات مؤشر البداية الى 0.
إذا أعطيت تخطيط بأنها "فورتران"، في الأمور التالية صحيحة:
- وضعت مجموعة من من أجل عمود كبير.
- يتم أخذ مؤشر نهاية يجب أن تكون شاملة، إذا تم تحديدها.
- افتراضيات مؤشر البداية الى 1.
(معظم) من المعرفة الواردة في الإعلان البعد يمكن reobtained برمجيا بواسطة وظائف و FOLLWING:
- rankof (أ)
- nitemsof (أ)
- lboundof (أ، محور)
- uboundof (أ، محور) (إرجاع الحد الأعلى المحدد من قبل المستخدم)
- puboundof (أ، محور) (إرجاع المؤشر فقط بعد نهاية محور)
- ldimof (أ، محور)
- strideof (أ، محور)
في كل حالة، يجب أن يكون محور عدد صحيح ثابت (لا تعبير ثابت، عدد صحيح عادي).
تركيب / الاستخدام
تستطيع الحصول على CND عن طريق تحميل كتل القطران من المؤشر الحزمة، أو من جيثب:
وعنبسة، بوابة استنساخ بوابة: //github.com/inducer/cnd.git
على & nbsp؛ مؤتمر نزع السلاح CND
 بوابة حدة ثانويه الحرف الأول
وعنبسة، بوابة تحديث حدة ثانويه
لاستخدام CND، ببساطة إضافة توزيع دير / بن لPATH الخاص بك.
للبدء، ببساطة تشغيل (من داخل الجذر CND):
على & nbsp؛ أمثلة مؤتمر نزع السلاح
على & nbsp؛ ../ بن / cndcc دول مجلس التعاون الخليجي -std = C99 basic.c
على & nbsp؛ ./ a.out
إذا كنت ترغب تحكم أكثر غرامة الحبيبات على عملية الترجمة، الأمر CND يعرض فقط ترجمة مصدر إلى مصدر. لاحظ أن CND تتوقع مصدر preprocessed. تستطيع تمرير -E الخيار لجعل CND تشغيل المعالج على المصدر بالنسبة لك. تشغيل:
على & nbsp؛ CND -h
للحصول على مساعدة كاملة عن واجهة سطر الأوامر. قد قمت بتعيين متغير البيئة CND_CPP إلى المعالج التي ترغب في استخدامها.

ما هو الجديد في هذا الإصدار:

تغير التركيب من [ط، ي] إلى [ط، ي].
لا يزال المزيد من الدعم محلل لرؤوس الحياة الحقيقية.

المتطلبات:

بيثون

البرامج الأخرى من المطور Andreas Kloeckner

PyOpenCL
PyOpenCL

28 Sep 15

PuDB
PuDB

20 Feb 15

تعليقات ل CnD

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!