سؤال

كل شخص لديه هذه ضخمة على نطاق واسع بشكل متوازي العملاق على سطح المكتب في شكل بطاقة الرسومات GPU.

  • ما هو "مرحبا العالم" ما يعادل GPU المجتمع ؟
  • ماذا أفعل أين أذهب للحصول على الشروع في برمجة الجرافيك الرئيسية GPU البائعين ؟

-آدم

هل كانت مفيدة؟

المحلول

تحقق من CUDA by NVidia، IMO، فهي أسهل منصة للقيام ببرمجة GPU.هناك طن من المواد الرائعة للقراءة.http://www.nvidia.com/object/cuda_home.html

سيكون Hello World هو إجراء أي نوع من العمليات الحسابية باستخدام GPU.

امل ان يساعد.

نصائح أخرى

  1. يمكنك الحصول على برمجة قمة الرأس ، تظليل بكسل التي تسمح التنفيذ من قانون مباشرة على GPU التعامل مع المخازن المؤقتة التي يمكن استخلاصها.هذه اللغات (أيOpenGL هي GL تظليل Lang عالية مستوى تظليل لانج و DirectX حكمه ) ، ج نمط الجملة ، حقا سهلة الاستخدام.بعض الأمثلة من HLSL يمكن العثور على هنا بالنسبة XNA game الاستوديو المباشر X.ليس لدي أي لائقة GLSL المراجع, ولكن أنا متأكد من أن هناك الكثير حولها.هذه تظليل اللغات تعطي هائلة كمية من الطاقة التعامل مع ما يحصل تعادل في كل قمة أو لكل مستوى بكسل, مباشرة على بطاقة الرسومات ، مما يجعل الأمور مثل الظلال والإضاءة ازهر حقا سهلة التنفيذ.
  2. الشيء الثاني الذي يتبادر إلى الذهن هو استخدام openCL إلى رمز جديد الخطوط العامة الغرض GPU هو.أنا غير متأكد من كيفية استخدام هذه الفهم هو الذي يعطي openCL أنت بدايات القدرة على وصول المعالجات على حد سواء بطاقة الرسومات العادية وحدة المعالجة المركزية.ليست هذه هي التكنولوجيا السائدة حتى الآن, و يبدو أن تكون مدفوعة من قبل شركة آبل.
  3. CUDA يبدو أن الموضوع الساخن.NVidia CUDA طريقة الوصول إلى قوة GPU. هنا بعض مقدمات

أعتقد أن الآخرين قد أجابوا على سؤالك الثاني.أما بالنسبة للأول، "Hello World" الخاص بـ CUDA، فلا أعتقد أن هناك معيارًا محددًا، ولكن شخصيًا، أوصي باستخدام أداة إضافة موازية (أي.برنامج يقوم بجمع الأعداد الصحيحة N).

إذا نظرت إلى مثال "التخفيض" في NVIDIA SDK، فيمكن توسيع المهمة البسيطة ظاهريًا لإظهار العديد من اعتبارات CUDA مثل عمليات القراءة المجمعة وتعارضات بنك الذاكرة وفتح الحلقة.

انظر هذا العرض لمزيد من المعلومات:

http://www.gpgpu.org/sc2007/SC07_CUDA_5_Optimization_Harris.pdf

نلقي نظرة على ATI تيار الحوسبة SDK.تعتمد على BrookGPU تم تطويره في جامعة ستانفورد.

في المستقبل، سيتم توحيد جميع أعمال GPU باستخدام OpenCL.إنها مبادرة ترعاها شركة Apple وستكون محايدة لبائعي بطاقات الرسومات.

يعد CUDA إطارًا ممتازًا للبدء به.يتيح لك كتابة نواة GPGPU في لغة C.سينتج المترجم رمزًا صغيرًا لوحدة معالجة الرسومات (GPU) من التعليمات البرمجية الخاصة بك ويرسل كل ما يتم تشغيله على وحدة المعالجة المركزية إلى المترجم العادي الخاص بك.إنها NVIDIA فقط وتعمل فقط على بطاقات السلسلة 8 أو أفضل.يمكنك التحقق من منطقة كودا لنرى ما يمكن القيام به معها.هناك بعض العروض التوضيحية الرائعة في كودا SDK.تعد الوثائق المرفقة مع SDK نقطة بداية جيدة لكتابة التعليمات البرمجية فعليًا.سيرشدك خلال عملية كتابة نواة ضرب المصفوفات، وهو مكان رائع للبدء.

OpenCL هو جهد لإنشاء مكتبة مشتركة بين الأنظمة الأساسية قادرة على برمجة أكواد برمجية مناسبة، من بين أمور أخرى، لوحدات معالجة الرسومات.فهو يسمح للشخص بكتابة التعليمات البرمجية دون معرفة وحدة معالجة الرسومات (GPU) التي سيتم تشغيلها عليها، مما يسهل استخدام بعض قوة وحدة معالجة الرسومات (GPU) دون استهداف عدة أنواع من وحدة معالجة الرسومات (GPU) على وجه التحديد.أظن أنه ليس بأداء كود GPU الأصلي (أو أصلي كما تسمح به الشركات المصنعة لوحدة معالجة الرسومات) ولكن قد تكون المقايضة تستحق العناء بالنسبة لبعض التطبيقات.

لا يزال في مراحله المبكرة نسبيًا (1.1 اعتبارًا من هذه الإجابة)، ولكنه اكتسب بعض الاهتمام في الصناعة - على سبيل المثال، فهو مدعوم أصلاً على نظام التشغيل OS X 10.5 والإصدارات الأحدث.

هناك طريقة أخرى سهلة للدخول إلى برمجة GPU، دون الدخول إلى CUDA أو OpenCL، وهي القيام بذلك عبر OpenACC.

يعمل OpenACC مثل OpenMP، مع توجيهات المترجم (مثل #pragma acc kernels) لإرسال العمل إلى GPU.على سبيل المثال، إذا كان لديك حلقة كبيرة (فقط الحلقات الكبيرة هي التي تستفيد حقًا):

int i;
float a = 2.0;
float b[10000];
#pragma acc kernels
for (i = 0; i < 10000; ++i) b[i] = 1.0f;
#pragma acc kernels
for (i = 0; i < 10000; ++i) {
  b[i] = b[i] * a;
}

يحرر:لسوء الحظ، فإن مترجم PGI هو الوحيد الذي يدعم OpenACC في الوقت الحالي، لبطاقات NVIDIA GPU.

يحاول GPU++ و libSh

يحتوي رابط LibSh على وصف جيد لكيفية ربط لغة البرمجة بأوليات الرسومات (وبالطبع، الأوليات نفسها)، ويصف GPU++ كل ما يتعلق به، كلاهما مع أمثلة التعليمات البرمجية.

إذا كنت تستخدم MATLAB، يصبح من السهل جدًا استخدام وحدات معالجة الرسومات (GPU) للحوسبة التقنية (حسابات المصفوفة والرياضيات الثقيلة/معالجة الأرقام).أجد أنه مفيد لاستخدامات بطاقات GPU خارج الألعاب.راجع الرابط أدناه:

http://www.mathworks.com/discovery/matlab-gpu.html

أنا مهتم أيضًا بهذا الموضوع والبرمجة الموازية.ولقد وجدت ما يلي وصلة, ، يرجى إلقاء نظرة على Udacity.com!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top