الحوسبة العامة على وحدات معالجة الرسوميات

الحوسبة للأغراض العامة على وحدات معالجة الرسومات ( GPGPU ، أو أقل شيوعًا GPGP ) هي استخدام وحدة معالجة الرسومات (GPU)، والتي تتعامل عادةً مع الحوسبة للرسومات الحاسوبية فقط ، لإجراء الحوسبة في التطبيقات التي تتم معالجتها تقليديًا بواسطة وحدة المعالجة المركزية (CPU). [1] [2] [3] [4] إن استخدام بطاقات فيديو متعددة في جهاز كمبيوتر واحد، أو عدد كبير من شرائح الرسومات، يزيد من التوازي مع الطبيعة المتوازية بالفعل لمعالجة الرسومات. [5]

في الأساس، يعد خط أنابيب GPGPU نوعًا من المعالجة المتوازية بين وحدة معالجة رسومية واحدة أو أكثر ووحدات معالجة مركزية تعمل على تحليل البيانات كما لو كانت في صورة أو شكل رسومي آخر. وبينما تعمل وحدات معالجة الرسوميات بترددات أقل، فإنها عادةً ما تحتوي على عدد أكبر بكثير من النوى . وبالتالي، يمكن لوحدات معالجة الرسوميات معالجة صور وبيانات رسومية أكثر بكثير في الثانية مقارنة بوحدة المعالجة المركزية التقليدية. يمكن أن يؤدي نقل البيانات إلى شكل رسومي ثم استخدام وحدة معالجة الرسوميات لمسحها وتحليلها إلى زيادة كبيرة في السرعة .

تم تطوير خطوط أنابيب GPGPU في بداية القرن الحادي والعشرين لمعالجة الرسومات (على سبيل المثال لتحسين برامج التظليل ). وقد تبين أن هذه الخطوط الأنابيب تناسب احتياجات الحوسبة العلمية بشكل جيد، ومنذ ذلك الحين تم تطويرها في هذا الاتجاه.

أشهر وحدات معالجة الرسوميات العامة هي Nvidia Tesla المستخدمة في Nvidia DGX ، إلى جانب AMD Instinct و Intel Gaudi.

تاريخ

من حيث المبدأ، يمكن إنشاء أي دالة منطقية عشوائية، بما في ذلك الجمع والضرب والدوال الرياضية الأخرى، من مجموعة كاملة وظيفيًا من مشغلات المنطق. في عام 1987، أصبحت لعبة الحياة التي ابتكرها كونواي واحدة من الأمثلة الأولى للحوسبة العامة باستخدام معالج تدفق مبكر يسمى blitter لاستدعاء تسلسل خاص من العمليات المنطقية على متجهات البت. [6]

أصبحت الحوسبة العامة على وحدات معالجة الرسوميات أكثر عملية وشعبية بعد عام 2001 تقريبًا، مع ظهور كل من برامج التظليل القابلة للبرمجة ودعم النقطة العائمة على معالجات الرسوميات. والجدير بالذكر أن المشكلات التي تنطوي على مصفوفات و/أو متجهات  - وخاصة المتجهات ثنائية أو ثلاثية أو رباعية الأبعاد - كانت سهلة الترجمة إلى وحدة معالجة الرسوميات، والتي تعمل بسرعة ودعم أصليين على تلك الأنواع. كان عام 2003 معلمًا مهمًا لوحدة معالجة الرسوميات العامة عندما اكتشفت مجموعتان بحثيتان بشكل مستقل مناهج تعتمد على وحدة معالجة الرسوميات لحل مشاكل الجبر الخطي العامة على وحدات معالجة الرسوميات التي تعمل بشكل أسرع من وحدات المعالجة المركزية. [7] [8] تطلبت هذه الجهود المبكرة لاستخدام وحدات معالجة الرسوميات كمعالجات عامة إعادة صياغة المشكلات الحسابية من حيث البدائيات الرسومية، كما تدعمها واجهتا برمجة التطبيقات الرئيسيتان لمعالجات الرسوميات، OpenGL و DirectX . تم التغلب على هذه الترجمة المرهقة من خلال ظهور لغات البرمجة العامة وواجهات برمجة التطبيقات مثل Sh / RapidMind و Brook وAccelerator. [9] [10] [11]

تبع ذلك CUDA من Nvidia ، والذي سمح للمبرمجين بتجاهل المفاهيم الرسومية الأساسية لصالح مفاهيم الحوسبة عالية الأداء الأكثر شيوعًا . [12] تتضمن العروض الأحدث المستقلة عن بائعي الأجهزة DirectCompute من Microsoft و OpenCL من Apple / Khronos Group . [12] وهذا يعني أن خطوط أنابيب GPGPU الحديثة يمكنها الاستفادة من سرعة وحدة معالجة الرسومات دون الحاجة إلى تحويل كامل وصريح للبيانات إلى شكل رسومي.

كان مارك هاريس، مؤسس GPGPU.org، هو من صاغ مصطلح GPGPU .

التنفيذات

أي لغة تسمح للكود الذي يعمل على وحدة المعالجة المركزية باستطلاع تظليل وحدة معالجة الرسوميات للحصول على قيم الإرجاع، يمكنها إنشاء إطار عمل GPGPU. تشمل معايير البرمجة للحوسبة المتوازية OpenCL (مستقل عن البائع)، وOpenACC ، وOpenMP ، و OpenHMPP .

اعتبارًا من عام 2016 ، أصبحت OpenCL لغة الحوسبة العامة المفتوحة المهيمنة لوحدات معالجة الرسومات، وهي معيار مفتوح حددته مجموعة Khronos . [ بحاجة لمصدر ] توفر OpenCL منصة GPGPU متعددة الأنظمة تدعم أيضًا الحوسبة المتوازية للبيانات على وحدات المعالجة المركزية. يتم دعم OpenCL بنشاط على منصات Intel وAMD وNvidia وARM. كما قامت مجموعة Khronos بتوحيد وتنفيذ SYCL ، وهو نموذج برمجة أعلى مستوى لـ OpenCL كلغة مضمنة محددة للمجال من مصدر واحد تعتمد على C++11 النقي.

الإطار الملكي السائد هو Nvidia CUDA . [13] أطلقت Nvidia CUDA في عام 2006، وهي مجموعة تطوير برمجيات (SDK) وواجهة برمجة التطبيقات (API) التي تسمح باستخدام لغة البرمجة C لترميز الخوارزميات للتنفيذ على سلسلة GeForce 8 ووحدات معالجة الرسومات اللاحقة.

تم إطلاق ROCm في عام 2016، وهو استجابة مفتوحة المصدر من AMD لـ CUDA. اعتبارًا من عام 2022، أصبح على قدم المساواة مع CUDA فيما يتعلق بالميزات، ولا يزال يفتقر إلى دعم المستهلك.

تم تطوير OpenVIDIA في جامعة تورنتو بين عامي 2003 و2005، [14] بالتعاون مع Nvidia.

يقوم برنامج Altimesh Hybridizer الذي أنشأته شركة Altimesh بتجميع لغة Common Intermediate Language إلى ثنائيات CUDA. [15] [16] وهو يدعم الوظائف العامة والافتراضية. [17] يتم دمج تصحيح الأخطاء وإنشاء ملفات التعريف مع Visual Studio وNsight. [18] وهو متاح كملحق لبرنامج Visual Studio على Visual Studio Marketplace.

قدمت شركة Microsoft واجهة برمجة تطبيقات الحوسبة DirectCompute GPU، والتي تم إصدارها مع واجهة برمجة تطبيقات DirectX 11 .

تقدم Alea GPU ،[19]التي أنشأتها QuantAlea،[20]قدرات الحوسبة الأصلية لوحدة معالجة الرسوميات للغات Microsoft .NETF#[21]وC#. كما توفر Alea GPU نموذج برمجة مبسط لوحدة معالجة الرسوميات يعتمد على التجميع المتوازي لوحدة معالجة الرسوميات باستخدام المندوبين وإدارة الذاكرة التلقائية.[22]

يدعم MATLAB تسريع GPGPU باستخدام Parallel Computing Toolbox و MATLAB Distributed Computing Server ، [23] والحزم التابعة لجهات خارجية مثل Jacket .

تُستخدم معالجة GPGPU أيضًا لمحاكاة الفيزياء النيوتونية بواسطة محركات الفيزياء ، [24] وتشمل التطبيقات التجارية Havok Physics وFX و PhysX ، وكلاهما يستخدم عادةً لألعاب الكمبيوتر والفيديو .

C++ Accelerated Massive Parallelism ( C++ AMP ) هي مكتبة تعمل على تسريع تنفيذ كود C++ من خلال استغلال أجهزة البيانات المتوازية على وحدات معالجة الرسومات.

أجهزة الكمبيوتر المحمولة

بسبب الاتجاه نحو زيادة قوة وحدات معالجة الرسوميات المحمولة، أصبحت البرمجة للأغراض العامة متاحة أيضًا على الأجهزة المحمولة التي تعمل بأنظمة التشغيل المحمولة الرئيسية .

مكّنت Google Android 4.2 تشغيل كود RenderScript على وحدة معالجة الرسوميات بالجهاز المحمول. [25] ومنذ ذلك الحين، تم إيقاف استخدام Renderscript لصالح أول برامج تظليل الحوسبة OpenGL [26] ولاحقًا Vulkan Compute. [27] يتوفر OpenCL على العديد من أجهزة Android، ولكن لا يدعمه Android رسميًا [ بحاجة لمصدر ] . قدمت Apple واجهة برمجة التطبيقات Metal الخاصة لتطبيقات iOS ، القادرة على تنفيذ تعليمات برمجية عشوائية من خلال برامج تظليل الحوسبة GPU الخاصة بـ Apple [ بحاجة لمصدر ] .

دعم الأجهزة

يتم إنتاج بطاقات الفيديو الخاصة بالكمبيوتر بواسطة العديد من البائعين، مثل Nvidia و AMD . تختلف البطاقات من هؤلاء البائعين في تنفيذ دعم تنسيق البيانات، مثل تنسيقات الأعداد الصحيحة والفاصلة العائمة (32 بت و64 بت). قدمت Microsoft معيار Shader Model للمساعدة في تصنيف الميزات المختلفة لبطاقات الرسومات إلى رقم إصدار Shader Model بسيط (1.0، 2.0، 3.0، إلخ).

الأعداد الصحيحة

تدعم بطاقات الفيديو التي تعمل قبل DirectX 9 فقط أنواع الألوان المصفوفة أو الصحيحة. في بعض الأحيان تتم إضافة قيمة ألفا أخرى لاستخدامها في الشفافية. التنسيقات الشائعة هي:

  • 8 بتات لكل بكسل – في بعض الأحيان يكون وضع اللوحة هو كل قيمة، حيث تكون كل قيمة عبارة عن فهرس في جدول مع تحديد قيمة اللون الحقيقية في أحد التنسيقات الأخرى. في بعض الأحيان يكون هناك ثلاثة بتات للأحمر، وثلاثة بتات للأخضر، وبتان للأزرق.
  • 16 بت لكل بكسل - عادةً ما يتم تخصيص البتات على النحو التالي: خمسة بتات للون الأحمر، وستة بتات للون الأخضر، وخمسة بتات للون الأزرق.
  • 24 بت لكل بكسل - هناك ثمانية بتات لكل من الأحمر والأخضر والأزرق.
  • 32 بت لكل بكسل - هناك ثمانية بتات لكل من الأحمر والأخضر والأزرق والألفا .

الأرقام العائمة

بالنسبة للرسومات ذات الوظيفة الثابتة المبكرة أو القابلة للبرمجة المحدودة (أي حتى وحدات معالجة الرسوميات المتوافقة مع DirectX 8.1) كان هذا كافياً لأن هذا هو التمثيل المستخدم في الشاشات أيضًا. هذا التمثيل له بعض القيود. نظرًا لقوة معالجة الرسوميات الكافية، حتى مبرمجي الرسوميات يرغبون في استخدام تنسيقات أفضل، مثل تنسيقات بيانات النقطة العائمة ، للحصول على تأثيرات مثل التصوير عالي النطاق الديناميكي . تتطلب العديد من تطبيقات GPGPU دقة النقطة العائمة، والتي تأتي مع بطاقات الفيديو المطابقة لمواصفات DirectX 9.

اقترحت DirectX 9 Shader Model 2.x دعم نوعين من الدقة: الدقة الكاملة والدقة الجزئية. يمكن أن يكون دعم الدقة الكاملة إما FP32 أو FP24 (32 أو 24 بت لكل مكون) أو أعلى، بينما كانت الدقة الجزئية FP16. تدعم سلسلة وحدات معالجة الرسوميات Radeon R300 من ATI دقة FP24 فقط في خط أنابيب الشظايا القابلة للبرمجة (على الرغم من دعم FP32 في معالجات vertex) بينما تدعم سلسلة NV30 من Nvidia كلاً من FP16 وFP32؛ تدعم شركات أخرى مثل S3 Graphics و XGI مزيجًا من التنسيقات حتى FP24.

إن تنفيذات الفاصلة العائمة على وحدات معالجة الرسوميات Nvidia متوافقة في الغالب مع IEEE ؛ ومع ذلك، هذا ليس صحيحًا عبر جميع البائعين. [28] وهذا له آثار على الدقة التي تعتبر مهمة لبعض التطبيقات العلمية. في حين أن قيم الفاصلة العائمة 64 بت (الفاصلة العائمة ذات الدقة المزدوجة) متوفرة بشكل شائع على وحدات المعالجة المركزية، إلا أنها غير مدعومة عالميًا على وحدات معالجة الرسوميات. تضحي بعض بنيات وحدة معالجة الرسوميات بتوافقها مع IEEE، بينما تفتقر أخرى إلى الدقة المزدوجة. وقد بذلت جهود لمحاكاة قيم الفاصلة العائمة ذات الدقة المزدوجة على وحدات معالجة الرسوميات؛ ومع ذلك، فإن التنازل عن السرعة ينفي أي فائدة من تفريغ الحوسبة على وحدة معالجة الرسوميات في المقام الأول. [29]

متجهات

تعمل معظم العمليات على وحدة معالجة الرسوميات بطريقة متجهة: يمكن إجراء عملية واحدة على ما يصل إلى أربع قيم في وقت واحد. على سبيل المثال، إذا كان من المقرر تعديل لون واحد ⟨R1، G1، B1⟩ بلون آخر ⟨R2، G2، B2⟩ ، يمكن لوحدة معالجة الرسوميات إنتاج اللون الناتج ⟨R1*R2، G1*G2، B1*B2⟩ في ​​عملية واحدة. هذه الوظيفة مفيدة في الرسومات لأن كل نوع بيانات أساسي تقريبًا هو متجه (إما ثنائي الأبعاد أو ثلاثي الأبعاد أو رباعي الأبعاد). [ بحاجة لمصدر ] تشمل الأمثلة الرؤوس والألوان والمتجهات الطبيعية وإحداثيات الملمس. يمكن للعديد من التطبيقات الأخرى الاستفادة من هذا بشكل جيد، وبسبب أدائها العالي، أصبحت تعليمات المتجهات، والتي يطلق عليها تعليمات واحدة وبيانات متعددة ( SIMD )، متاحة منذ فترة طويلة على وحدات المعالجة المركزية. [ بحاجة لمصدر ]

وحدة معالجة الرسوميات مقابل وحدة المعالجة المركزية

في الأصل، كانت البيانات تمر ببساطة في اتجاه واحد من وحدة المعالجة المركزية (CPU) إلى وحدة معالجة الرسومات (GPU)، ثم إلى جهاز العرض . ومع تقدم الوقت، أصبح من المفيد لوحدات معالجة الرسومات تخزين هياكل بيانات بسيطة في البداية، ثم معقدة، ليتم تمريرها مرة أخرى إلى وحدة المعالجة المركزية التي تحلل صورة، أو مجموعة من البيانات العلمية ممثلة بتنسيق ثنائي الأبعاد أو ثلاثي الأبعاد يمكن لبطاقة الفيديو فهمها. نظرًا لأن وحدة معالجة الرسومات لديها إمكانية الوصول إلى كل عملية رسم، فيمكنها تحليل البيانات بهذه الأشكال بسرعة، في حين يجب على وحدة المعالجة المركزية استطلاع كل بكسل أو عنصر بيانات بشكل أبطأ بكثير، حيث أن سرعة الوصول بين وحدة المعالجة المركزية ومجموعة أكبر من ذاكرة الوصول العشوائي (أو في حالة أسوأ، محرك الأقراص الثابتة ) أبطأ من وحدات معالجة الرسومات وبطاقات الفيديو، والتي تحتوي عادةً على كميات أصغر من الذاكرة الأكثر تكلفة والتي يكون الوصول إليها أسرع بكثير. يؤدي نقل جزء مجموعة البيانات المراد تحليلها بنشاط إلى ذاكرة وحدة معالجة الرسومات هذه في شكل نسيج أو أشكال أخرى لوحدة معالجة الرسومات سهلة القراءة إلى زيادة السرعة. الميزة المميزة لتصميم GPGPU هي القدرة على نقل المعلومات في اتجاهين من وحدة معالجة الرسوميات إلى وحدة المعالجة المركزية؛ بشكل عام، يكون معدل نقل البيانات في كلا الاتجاهين مرتفعًا بشكل مثالي، مما يؤدي إلى تأثير مضاعف على سرعة خوارزمية معينة عالية الاستخدام .

قد تعمل خطوط أنابيب GPGPU على تحسين الكفاءة في مجموعات البيانات الكبيرة بشكل خاص و/أو البيانات التي تحتوي على صور ثنائية الأبعاد أو ثلاثية الأبعاد. يتم استخدامها في خطوط أنابيب الرسومات المعقدة بالإضافة إلى الحوسبة العلمية ؛ بشكل أكبر في المجالات التي تحتوي على مجموعات بيانات كبيرة مثل رسم خرائط الجينوم ، أو حيث يكون التحليل ثنائي الأبعاد أو ثلاثي الأبعاد مفيدًا - وخاصة في الوقت الحاضر تحليل الجزيئات الحيوية ، ودراسة البروتين ، والكيمياء العضوية المعقدة الأخرى . ومن الأمثلة على هذه التطبيقات مجموعة برامج NVIDIA لتحليل الجينوم .

كما يمكن لمثل هذه الأنابيب تحسين الكفاءة بشكل كبير في معالجة الصور ورؤية الكمبيوتر ، من بين مجالات أخرى؛ فضلاً عن المعالجة المتوازية بشكل عام. وقد أسفرت بعض الأنابيب المحسّنة بشكل كبير عن زيادات في السرعة تصل إلى عدة مئات من المرات مقارنة بأنابيب وحدة المعالجة المركزية الأصلية في مهمة واحدة عالية الاستخدام.

قد يكون أحد الأمثلة البسيطة هو برنامج وحدة معالجة الرسوميات الذي يجمع البيانات حول متوسط ​​قيم الإضاءة أثناء عرض بعض المشاهد من كاميرا أو برنامج رسوميات كمبيوترية مرة أخرى إلى البرنامج الرئيسي على وحدة المعالجة المركزية، بحيث يمكن لوحدة المعالجة المركزية بعد ذلك إجراء تعديلات على عرض الشاشة الإجمالي. قد يستخدم مثال أكثر تقدمًا اكتشاف الحواف لإرجاع كل من المعلومات الرقمية وصورة معالجة تمثل الخطوط العريضة إلى برنامج رؤية كمبيوتر يتحكم، على سبيل المثال، في روبوت متحرك. نظرًا لأن وحدة معالجة الرسوميات تتمتع بإمكانية الوصول السريع والمحلي للأجهزة إلى كل بكسل أو عنصر صورة آخر في صورة، فيمكنها تحليلها ومتوسطها (للمثال الأول) أو تطبيق مرشح حافة Sobel أو مرشح التفاف آخر (للمثال الثاني) بسرعة أكبر بكثير من وحدة المعالجة المركزية، والتي عادةً ما يتعين عليها الوصول إلى نسخ ذاكرة الوصول العشوائي الأبطأ من الرسم المعني.

إن GPGPU هو في الأساس مفهوم برمجي، وليس مفهومًا للأجهزة؛ إنه نوع من الخوارزميات ، وليس قطعة من المعدات. ومع ذلك، قد تعمل تصميمات المعدات المتخصصة على تعزيز كفاءة خطوط أنابيب GPGPU بشكل أكبر، والتي تقوم تقليديًا بإجراء عدد قليل نسبيًا من الخوارزميات على كميات كبيرة جدًا من البيانات. وبالتالي، يمكن تنفيذ المهام المتوازية الضخمة على مستوى البيانات بشكل متوازي بشكل أكبر من خلال إعدادات متخصصة مثل الحوسبة على الرفوف (العديد من الآلات المتشابهة والمصممة خصيصًا والمضمنة في رف ) ، والتي تضيف طبقة ثالثة - العديد من وحدات الحوسبة التي تستخدم كل منها العديد من وحدات المعالجة المركزية لتتوافق مع العديد من وحدات معالجة الرسومات. استخدم بعض "عمال مناجم" البيتكوين مثل هذه الإعدادات لمعالجة كميات كبيرة.

مخابئ

تاريخيًا، استخدمت وحدات المعالجة المركزية ذاكرة تخزين مؤقتة مُدارة بواسطة الأجهزة ، لكن وحدات معالجة الرسومات السابقة كانت توفر فقط ذاكرات محلية مُدارة بواسطة البرامج. ومع ذلك، نظرًا لأن وحدات معالجة الرسومات تُستخدم بشكل متزايد في التطبيقات العامة، فقد تم تصميم وحدات معالجة الرسومات الحديثة بذاكرة تخزين مؤقتة متعددة المستويات مُدارة بواسطة الأجهزة والتي ساعدت وحدات معالجة الرسومات على التحرك نحو الحوسبة السائدة. على سبيل المثال، لم تتميز وحدات معالجة الرسومات ذات بنية GT200 من سلسلة GeForce 200 بذاكرة تخزين مؤقتة من المستوى الثاني، وتحتوي وحدة معالجة الرسومات Fermi على ذاكرة تخزين مؤقتة من المستوى الأخير تبلغ 768 كيلو بايت، وتحتوي وحدة معالجة الرسومات Kepler على ذاكرة تخزين مؤقتة من المستوى الأخير تبلغ 1.5 ميجا بايت، [30] وتحتوي وحدة معالجة الرسومات Maxwell على ذاكرة تخزين مؤقتة من المستوى الأخير تبلغ 2 ميجا بايت، وتحتوي وحدة معالجة الرسومات Pascal على ذاكرة تخزين مؤقتة من المستوى الأخير تبلغ 4 ميجا بايت.

ملف التسجيل

تحتوي وحدات معالجة الرسوميات على ملفات تسجيل كبيرة جدًا ، مما يسمح لها بتقليل زمن انتقال السياق. يتزايد حجم ملف التسجيل أيضًا عبر أجيال وحدة معالجة الرسوميات المختلفة، على سبيل المثال، يبلغ إجمالي حجم ملف التسجيل على وحدات معالجة الرسوميات Maxwell (GM200) وPascal وVolta 6 ميجا بايت و14 ميجا بايت و20 ميجا بايت على التوالي. [31] [32] وبالمقارنة، فإن حجم ملف التسجيل على وحدات المعالجة المركزية صغير، وعادةً ما يكون عشرات أو مئات الكيلوبايت.

كفاءة الطاقة

يأتي الأداء العالي لوحدات معالجة الرسوميات على حساب استهلاك الطاقة العالي، والذي يكون في الواقع تحت الحمل الكامل مساويًا لاستهلاك بقية نظام الكمبيوتر الشخصي مجتمعًا. [33] تم تحديد الحد الأقصى لاستهلاك الطاقة لوحدة معالجة الرسوميات من سلسلة Pascal (Tesla P100) ليكون 250 وات. [34]

معالجة التدفق

تم تصميم وحدات معالجة الرسوميات خصيصًا للرسومات، وبالتالي فهي مقيدة للغاية في العمليات والبرمجة. وبسبب تصميمها، لا تكون وحدات معالجة الرسوميات فعالة إلا في المشكلات التي يمكن حلها باستخدام معالجة التدفق ولا يمكن استخدام الأجهزة إلا بطرق معينة.

تتعلق المناقشة التالية التي تشير إلى الرؤوس والشظايا والقوام بشكل أساسي بالنموذج القديم لبرمجة GPGPU، حيث تم استخدام واجهات برمجة التطبيقات الرسومية ( OpenGL أو DirectX ) لإجراء عمليات حسابية للأغراض العامة. مع تقديم واجهات برمجة التطبيقات الحوسبية للأغراض العامة CUDA (Nvidia، 2007) و OpenCL (مستقلة عن البائع، 2008)، لم يعد من الضروري في أكواد GPGPU الجديدة تعيين العمليات الحسابية إلى بدائيات الرسومات. تظل طبيعة معالجة التدفق لوحدات معالجة الرسومات صالحة بغض النظر عن واجهات برمجة التطبيقات المستخدمة. (انظر على سبيل المثال، [35] )

لا تستطيع وحدات معالجة الرسوميات معالجة سوى الرؤوس والأجزاء المستقلة، ولكنها تستطيع معالجة العديد منها بالتوازي. وهذا فعال بشكل خاص عندما يريد المبرمج معالجة العديد من الرؤوس أو الأجزاء بنفس الطريقة. وبهذا المعنى، تعد وحدات معالجة الرسوميات معالجات تدفقية - معالجات يمكنها العمل بالتوازي من خلال تشغيل نواة واحدة على العديد من السجلات في تدفق في وقت واحد.

الدفق هو ببساطة مجموعة من السجلات التي تتطلب حسابات مماثلة. توفر الدفقات التوازي للبيانات. النوى هي الوظائف التي يتم تطبيقها على كل عنصر في الدفق. في وحدات معالجة الرسوميات، الرؤوس والشظايا هي العناصر في الدفقات والرؤوس والشظايا هي النوى التي سيتم تشغيلها عليها. [ مشكوك فيه - ناقش ] بالنسبة لكل عنصر، يمكننا فقط القراءة من المدخلات وإجراء العمليات عليه والكتابة إلى المخرجات. من المسموح أن يكون لدينا مدخلات ومخرجات متعددة، ولكن لا يجوز أبدًا الحصول على قطعة ذاكرة قابلة للقراءة والكتابة. [ غامض ]

يتم تعريف كثافة العمليات الحسابية على أنها عدد العمليات التي يتم إجراؤها لكل كلمة من الذاكرة المنقولة. من المهم لتطبيقات GPGPU أن تتمتع بكثافة حسابية عالية وإلا فإن زمن الوصول إلى الذاكرة سيحد من تسريع العمليات الحسابية. [36]

تتمتع تطبيقات GPGPU المثالية بمجموعات بيانات كبيرة، وتوازي عالٍ، واعتماد ضئيل بين عناصر البيانات.

مفاهيم برمجة وحدة معالجة الرسوميات

الموارد الحاسوبية

تتوفر مجموعة متنوعة من الموارد الحسابية على وحدة معالجة الرسومات:

  • المعالجات القابلة للبرمجة - تسمح خطوط الأنابيب الرأسية والبدائية والمجزأة والحوسبة بشكل أساسي للمبرمج بإجراء عمليات النواة على تدفقات البيانات
  • Rasterizer – ينشئ شظايا ويدخل ثوابت لكل رأس مثل إحداثيات الملمس واللون
  • وحدة الملمس – واجهة ذاكرة للقراءة فقط
  • Framebuffer – واجهة ذاكرة للكتابة فقط

في الواقع، يمكن للبرنامج استبدال نسيج الكتابة فقط بالإخراج بدلاً من الإطار المؤقت. يتم ذلك إما من خلال Render to Texture (RTT)، أو Render-To-Backbuffer-Copy-To-Texture (RTBCTT)، أو التدفق الخارجي الأحدث.

القوام كتدفق

الشكل الأكثر شيوعًا للتدفق في GPGPU هو شبكة ثنائية الأبعاد لأن هذا يتناسب بشكل طبيعي مع نموذج العرض المدمج في وحدات معالجة الرسومات. يتم رسم العديد من العمليات الحسابية بشكل طبيعي في شبكات: الجبر المصفوفي، ومعالجة الصور، والمحاكاة القائمة على الفيزياء، وما إلى ذلك.

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

النوى

يمكن اعتبار نوى الحوسبة بمثابة مجموعة من الحلقات . على سبيل المثال، قد يكون لدى المبرمج الذي يعمل على شبكة على وحدة المعالجة المركزية كود يبدو كالتالي:

// تحتوي شبكات الإدخال والإخراج على 10000 × 10000 أو 100 مليون عنصر.

void transform_10k_by_10k_grid ( float in [ 10000 ][ 10000 ], float out [ 10000 ][ 10000 ]) { for ( int x = 0 ; x < 10000 ; x ++ ) { for ( int y = 0 ; y < 10000 ; y ++ ) { // يتم تنفيذ السطر التالي 100 مليون مرة out [ x ][ y ] = do_some_hard_work ( in [ x ][ y ]); } } }    

             
                 
            
              
        
    

على وحدة معالجة الرسوميات، يحدد المبرمج فقط جسم الحلقة باعتباره النواة وما هي البيانات التي سيتم تكرارها عن طريق استدعاء معالجة الهندسة.

التحكم في التدفق

في الكود المتسلسل، من الممكن التحكم في تدفق البرنامج باستخدام عبارات if-then-else وأشكال مختلفة من الحلقات. لم تتم إضافة هياكل التحكم في التدفق هذه إلا مؤخرًا إلى وحدات معالجة الرسوميات. [37] يمكن إجراء عمليات الكتابة الشرطية باستخدام سلسلة مصممة بشكل صحيح من العمليات الحسابية/البتية، ولكن لم يكن من الممكن استخدام الحلقات والتفرعات الشرطية.

تسمح وحدات معالجة الرسوميات الحديثة [ متى؟ ] بالتفرع، ولكن عادةً مع عقوبة الأداء. يجب تجنب التفرع بشكل عام في الحلقات الداخلية، سواء في كود وحدة المعالجة المركزية أو وحدة معالجة الرسوميات، ويمكن استخدام طرق مختلفة، مثل حل التفرع الثابت، والحوسبة المسبقة، والتنبؤ، وتقسيم الحلقة، [38] وZ-cull [39] لتحقيق التفرع عندما لا يوجد دعم للأجهزة.

طرق وحدة معالجة الرسوميات

رسم خريطة

تطبق عملية الخريطة ببساطة الوظيفة المعطاة (النواة) على كل عنصر في الدفق. مثال بسيط هو ضرب كل قيمة في الدفق بثابت (زيادة سطوع الصورة). عملية الخريطة بسيطة التنفيذ على وحدة معالجة الرسوميات. يقوم المبرمج بإنشاء جزء لكل بكسل على الشاشة ويطبق برنامج جزء على كل بكسل. يتم تخزين دفق النتيجة بنفس الحجم في المخزن المؤقت للإخراج.

يقلل

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

تصفية التدفق

إن تصفية التدفق هي في الأساس عملية اختزال غير موحدة. وتتضمن التصفية إزالة العناصر من التدفق بناءً على بعض المعايير.

مسح ضوئي

تتضمن عملية المسح، والتي يطلق عليها أيضًا مجموع البادئات المتوازية ، متجهًا (دفقًا) من عناصر البيانات ودالة ثنائية ارتباطية (عشوائية) '+' بعنصر هوية 'i' . إذا كان الإدخال هو [a0, a1, a2, a3, ...]، فإن المسح الحصري ينتج الناتج [i, a0, a0 + a1, a0 + a1 + a2, ...]، بينما ينتج المسح الشامل الناتج [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] ولا يتطلب وجود هوية . وبينما قد تبدو العملية للوهلة الأولى متسلسلة بطبيعتها، إلا أن خوارزميات المسح المتوازي الفعالة ممكنة وتم تنفيذها على وحدات معالجة الرسومات. تستخدم عملية المسح في مثل الفرز السريع وضرب المصفوفة المتفرقة بالمتجه. [35] [40] [41] [42]

تشتت

يتم تعريف عملية التشتت بشكل طبيعي على معالج الرأس. يتمكن معالج الرأس من ضبط موضع الرأس ، مما يسمح للمبرمج بالتحكم في مكان إيداع المعلومات على الشبكة. كما أن هناك امتدادات أخرى ممكنة، مثل التحكم في حجم المنطقة التي يؤثر عليها الرأس.

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

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

يجتمع

التجميع هو عكس التشتت. بعد إعادة ترتيب العناصر وفقًا لخريطة، يمكن للتجميع استعادة ترتيب العناصر وفقًا لتشتت الخريطة المستخدم. في نوى الحوسبة المخصصة، يمكن إجراء التجميع من خلال قراءات مفهرسة. في برامج التظليل الأخرى، يتم ذلك باستخدام عمليات البحث عن الملمس.

نوع

تحول عملية الفرز مجموعة غير مرتبة من العناصر إلى مجموعة مرتبة من العناصر. التنفيذ الأكثر شيوعًا على وحدات معالجة الرسوميات هو استخدام الفرز الأساسي للبيانات الصحيحة والفاصلة العائمة والفرز الدمجي الخشن وشبكات الفرز الدقيقة للبيانات القابلة للمقارنة العامة. [43] [44]

تتيح عملية البحث للمبرمج العثور على عنصر معين داخل الدفق، أو ربما العثور على جيران لعنصر محدد. في الغالب، تكون طريقة البحث المستخدمة هي البحث الثنائي على العناصر المصنفة.

هياكل البيانات

يمكن تمثيل مجموعة متنوعة من هياكل البيانات على وحدة معالجة الرسوميات:

التطبيقات

فيما يلي بعض المجالات التي تم فيها استخدام وحدات معالجة الرسوميات في الحوسبة للأغراض العامة:

المعلوماتية الحيوية

استخدام GPGPU في علم المعلومات الحيوية: [59] [83]

طلب وصف الميزات المدعومة التسارع المتوقع† وحدة معالجة الرسوميات‡ دعم وحدات معالجة الرسوميات المتعددة حالة الإصدار
باراكودا DNA، بما في ذلك علم الوراثة فوق الجينية، وبرامج رسم خرائط التسلسل [84] محاذاة قراءات التسلسل القصيرة 6-10x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 0.7.107f
كوداسو++ برنامج مفتوح المصدر لعمليات البحث في قاعدة بيانات بروتين سميث ووترمان على وحدات معالجة الرسوميات البحث الموازي في قاعدة بيانات سميث ووترمان 10-50x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 2.0.8
كوشاو محاذاة القراءة القصيرة المتوازية محاذاة قراءة طويلة متوازية ودقيقة – محاذاة متباعدة للجينومات الكبيرة 10x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 1.0.40
GPU-BLAST البحث المحلي باستخدام k -tuple heuristic السريع محاذاة البروتين وفقًا لـ blastp، خيوط وحدة المعالجة المركزية المتعددة 3-4 مرات ت 2075، 2090، ك10، ك20، ك20X مفرد فقط متوفر الآن، الإصدار 2.2.26
وحدة معالجة الرسوميات-HMMER البحث المتوازي المحلي والعالمي باستخدام نماذج ماركوف المخفية البحث المتوازي المحلي والعالمي عن نماذج ماركوف المخفية 60-100x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 2.3.2
ميكودا-ميم خوارزمية اكتشاف العناصر القابلة للتطوير فائقة السرعة استنادًا إلى MEME خوارزمية اكتشاف الزخارف القابلة للتطوير استنادًا إلى MEME 4-10x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 3.0.12
تسلسل البحث مجموعة أدوات تحليل التسلسل المتسارع بواسطة وحدة معالجة الرسوميات تجميع مرجعي، انفجار، سميث ووترمان، همم، تجميع جديد 400x ت 2075، 2090، ك10، ك20، ك20X نعم متاح الآن
يوجين مفتوح المصدر Smith–Waterman لـ SSE/CUDA، مكتشف التكرارات القائم على مصفوفة لاحقة وdotplot محاذاة القراءة القصيرة السريعة 6–8x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 1.11
وايدLM يتناسب مع العديد من النماذج الخطية لتصميم ثابت واستجابة الانحدار الخطي المتوازي على نماذج متعددة متشابهة الشكل 150x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 0.1-1

الديناميكية الجزيئية

طلب وصف الميزات المدعومة التسارع المتوقع† وحدة معالجة الرسوميات‡ دعم وحدات معالجة الرسوميات المتعددة حالة الإصدار
أذن البحر نماذج الديناميكيات الجزيئية للبوليمرات الحيوية لمحاكاة البروتينات والحمض النووي والربيطات المذيب الصريح والضمني، هجين مونت كارلو 4–120x ت 2075، 2090، ك10، ك20، ك20X مفرد فقط متوفر الآن، الإصدار 1.8.88
الأكاديمية الأمريكية لطب الأطفال محاكاة وحدة معالجة الرسوميات لحقول القوة الميكانيكية الجزيئية والمذيبات الضمنية والصريحة مكتوب للاستخدام على وحدات معالجة الرسوميات إصدار وحدة معالجة الرسوميات 160 ns/day فقط ت 2075، 2090، ك10، ك20، ك20X نعم متاح الآن
العنبر مجموعة من البرامج لمحاكاة الديناميكيات الجزيئية على الجزيئات الحيوية PMEMD: المذيب الصريح والضمني 89.44 نانوثانية/يوم JAC NVE ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 12 + bugfix9
دي إل-بولي محاكاة الجزيئات الكبيرة والبوليمرات والأنظمة الأيونية وما إلى ذلك على جهاز كمبيوتر موازٍ للذاكرة الموزعة قوى الجسمين، أزواج الخلايا الرابطة، قوى Ewald SPME، Shake VV 4x ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 4.0 المصدر فقط
شارم حزمة MD لمحاكاة الديناميكيات الجزيئية على الجزيء الحيوي. المذيب الضمني (5x)، والصريح (2x) عبر OpenMM سيتم تحديده لاحقا ت 2075، 2090، ك10، ك20، ك20X نعم في التطوير الربع الرابع من عام 2012
جروماكس محاكاة الجزيئات الكيميائية الحيوية باستخدام تفاعلات الروابط المعقدة المذيب الضمني (5x)، المذيب الصريح (2x) 165 نانوثانية/يوم DHFR ت 2075، 2090، ك10، ك20، ك20X مفرد فقط متاح الآن، الإصدار 4.6 في الربع الرابع من عام 2012
هوومد-أزرق حزمة ديناميكيات الجسيمات مكتوبة على أسس وحدات معالجة الرسوميات مكتوبة لوحدات معالجة الرسوميات 2x ت 2075، 2090، ك10، ك20، ك20X نعم متاح الآن
لامبس حزمة الديناميكيات الجزيئية الكلاسيكية لينارد جونز، مورس، باكنغهام، CHARMM، جدولي، حبيبات خشنة SDK، جاي بيرن متباين الخواص، RE-squared، تركيبات "هجينة" 3–18x ت 2075، 2090، ك10، ك20، ك20X نعم متاح الآن
نامد مُصمم لمحاكاة عالية الأداء للأنظمة الجزيئية الكبيرة قادرة على تخزين 100 مليون ذرة 6.44 نانوثانية/يوم STMV 585x 2050 ثانية ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 2.9
أوبن إم إم مكتبة وتطبيق للديناميكيات الجزيئية للحوسبة عالية الأداء باستخدام وحدات معالجة الرسوميات المذيبات الضمنية والصريحة، القوى المخصصة ضمني: 127–213 نانوثانية/يوم؛ صريح: 18–55 نانوثانية/يوم DHFR ت 2075، 2090، ك10، ك20، ك20X نعم متوفر الآن، الإصدار 4.1.1

† تعتمد عمليات التسارع المتوقعة بشكل كبير على تكوين النظام. مقارنة أداء وحدة معالجة الرسومات بمقبس وحدة المعالجة المركزية x86 متعدد النواة . تم قياس أداء وحدة معالجة الرسومات على أساس الميزات المدعومة لوحدة معالجة الرسومات وقد تكون مقارنة أداء نواة إلى نواة. للحصول على تفاصيل حول التكوين المستخدم، راجع موقع الويب الخاص بالتطبيق. عمليات التسارع وفقًا للاختبار الداخلي لشركة Nvidia أو وثائق ISV.

‡ Q= Quadro GPU ، T= Tesla GPU . وحدات معالجة الرسوميات الموصى بها من Nvidia لهذا التطبيق. استشر المطور أو المزود المستقل للحصول على معلومات الاعتماد.

انظر أيضا

مراجع

  1. ^ فونج، جيمس؛ تانج، فيليكس؛ مان، ستيف (7-10 أكتوبر 2002). الواقع الوسيط باستخدام أجهزة الرسوميات الحاسوبية للرؤية الحاسوبية (PDF) . وقائع الندوة الدولية للحوسبة القابلة للارتداء 2002 (ISWC2002). سياتل، واشنطن، الولايات المتحدة الأمريكية. ص 83-89. مؤرشف من الأصل (PDF) في 2 أبريل 2012.
  2. ^ Aimone, Chris; Fung, James; Mann, Steve (2003). "تقدير الحركة الإسقاطية بدون ميزات المستندة إلى الفيديو Eye Tap بمساعدة التتبع الجيروسكوبي للواقع الذي يمكن ارتداؤه بوساطة الكمبيوتر". الحوسبة الشخصية والمنتشرة . 7 (5): 236-248. doi :10.1007/s00779-003-0239-6. S2CID  25168728.
  3. ^ "معالجة إشارات الرؤية الحاسوبية على وحدات معالجة الرسومات"، وقائع المؤتمر الدولي لمعهد مهندسي الكهرباء والإلكترونيات حول الصوتيات والكلام ومعالجة الإشارات (ICASSP 2004) محفوظ في 19 أغسطس 2011 على موقع واي باك مشين : مونتريال، كيبيك، كندا، 17-21 مايو 2004، ص. V-93 – V-96
  4. ^ Chitty, DM (2007, July). A data parallel approach to genetic programming using programmable graphics hardware Archived 8 August 2017 at the Wayback Machine . في وقائع المؤتمر السنوي التاسع للحوسبة الوراثية والتطورية (ص 1566-1573). ACM.
  5. ^ "استخدام بطاقات رسوميات متعددة كجهاز كمبيوتر متوازي للأغراض العامة: تطبيقات على رؤية الكمبيوتر"، وقائع المؤتمر الدولي السابع عشر حول التعرف على الأنماط (ICPR2004) المؤرشف في 18 يوليو 2011 على موقع واي باك مشين ، كامبريدج، المملكة المتحدة، 23-26 أغسطس 2004، المجلد 1، الصفحات 805-808.
  6. ^ هال، جيرالد (ديسمبر 1987). "الحياة". الحوسبة المذهلة . 2 (12): 81-84.
  7. ^ كروجر، ينس؛ ويسترمان، روديجر (يوليو 2003). "مشغلات الجبر الخطي لتطبيق وحدة معالجة الرسوميات للخوارزميات العددية". معاملات ACM للرسوميات . 22 (3): 908-916. doi :10.1145/882262.882363. ISSN  0730-0301.
  8. ^ بولز، جيف؛ فارمر، إيان؛ جرينسبون، إيتان؛ شرودر، بيتر (يوليو 2003). "حلول المصفوفات المتفرقة على وحدة معالجة الرسوميات: التدرجات المترافقة والشبكات المتعددة". معاملات ACM للرسوميات . 22 (3): 917-924. doi :10.1145/882262.882364. ISSN  0730-0301.
  9. ^ تارديتي، ديفيد؛ بوري، سيد؛ أوجليسبي، خوسيه (2006). "المسرع: استخدام التوازي في البيانات لبرمجة وحدات معالجة الرسوميات للاستخدامات العامة" (PDF) . ACM SIGARCH Computer Architecture News . 34 (5). doi :10.1145/1168919.1168898.
  10. ^ تشي شواي. بوير، مايكل. منغ، جيايوان. تارجان، د.؛ شيفر، جيريمي دبليو؛ سكادرون ، كيفن (2008). “دراسة أداء التطبيقات ذات الأغراض العامة على معالجات الرسومات باستخدام CUDA”. ي. الحوسبة المتوازية والموزعة . 68 (10): 1370-1380. سيتيسيركس 10.1.1.143.4849 . دوى :10.1016/j.jpdc.2008.05.014. 
  11. ^ Glaser, J.; Nguyen, TD; Anderson, JA; Lui, P.; Spiga, F.; Millan, JA; Morse, DC; Glotzer, SC (2015). "Strong scaling of general-purpose molecular dynamics simulators on GPUs". Computer Physics Communications . 192 : 97–107. arXiv : 1412.3387 . Bibcode :2015CoPhC.192...97G. doi : 10.1016/j.cpc.2015.02.028 .
  12. ^ ab Du, Peng; Weber, Rick; Luszczek, Piotr; Tomov, Stanimire; Peterson, Gregory; Dongarra, Jack (2012). "من CUDA إلى OpenCL: نحو حل محمول عالي الأداء لبرمجة وحدة معالجة الرسوميات متعددة المنصات". الحوسبة المتوازية . 38 (8): 391–407. CiteSeerX 10.1.1.193.7712 . doi :10.1016/j.parco.2011.10.002. 
  13. ^ "OpenCL Gains Ground on CUDA". 28 فبراير 2012. مؤرشف من الأصل في 23 أبريل 2012. تم الاسترجاع 10 أبريل 2012 ."باعتبارهما إطاري البرمجة الرئيسيين لحوسبة وحدة معالجة الرسوميات، كانت OpenCL وCUDA تتنافسان على حصة كبيرة في مجتمع المطورين خلال السنوات القليلة الماضية."
  14. ^ جيمس فونج، ستيف مان، كريس إيمون، "OpenVIDIA: رؤية حاسوبية متوازية لوحدة معالجة الرسوميات، أرشيف 23 ديسمبر 2019 على موقع واي باك مشين "، وقائع مؤتمر ACM Multimedia 2005، سنغافورة، 6-11 نوفمبر 2005، الصفحات 849-852
  15. ^ "Hybridizer". Hybridizer . مؤرشف من الأصل في 17 أكتوبر 2017.
  16. ^ "الصفحة الرئيسية". Altimesh . مؤرشف من الأصل في 17 أكتوبر 2017.
  17. ^ "Hybridizer generics and genetic". 27 يوليو 2017. مؤرشف من الأصل في 17 أكتوبر 2017.
  18. ^ "التصحيح والتوصيف باستخدام Hybridizer". 5 يونيو 2017. مؤرشف من الأصل في 17 أكتوبر 2017.
  19. ^ "مقدمة". Alea GPU . مؤرشف من الأصل في 25 ديسمبر 2016 . تم الاسترجاع 15 ديسمبر 2016 .
  20. ^ "الصفحة الرئيسية". Quant Alea . مؤرشف من الأصل في 12 ديسمبر 2016 . تم الاسترجاع 15 ديسمبر 2016 .
  21. ^ "استخدام F# لبرمجة وحدة معالجة الرسوميات". مؤسسة برمجيات F#. مؤرشف من الأصل في 18 ديسمبر 2016. تم الاسترجاع في 15 ديسمبر 2016 .
  22. ^ "ميزات وحدة معالجة الرسوميات Alea". Quant Alea . مؤرشف من الأصل في 21 ديسمبر 2016 . تم الاسترجاع في 15 ديسمبر 2016 .
  23. ^ "MATLAB يضيف دعم GPGPU". 20 سبتمبر 2010. مؤرشف من الأصل في 27 سبتمبر 2010.
  24. ^ ab Joselli, Mark, et al. "محرك فيزياء جديد مع توزيع تلقائي للعمليات بين وحدة المعالجة المركزية ووحدة معالجة الرسومات [ رابط ميت ] ." وقائع ندوة ACM SIGGRAPH لعام 2008 حول ألعاب الفيديو. ACM، 2008.
  25. ^ "Android 4.2 APIs - Android Developers". developer.android.com . مؤرشف من الأصل في 26 أغسطس 2013.
  26. ^ "نقل البرامج النصية إلى OpenGL ES 3.1".
  27. ^ "نقل البرامج النصية إلى Vulkan".
  28. ^ هاريس، مارك (2005). "ربط المفاهيم الحسابية بوحدات معالجة الرسوميات". دورات ACM SIGGRAPH 2005 حول - SIGGRAPH '05 . ص. 50-ed. doi :10.1145/1198555.1198768. ISBN 9781450378338. S2CID  8212423.
  29. ^ الدقة المزدوجة على وحدات معالجة الرسوميات (وقائع ASIM 2005) أرشيف 21 أغسطس 2014 على موقع واي باك مشين : دومينيك جوديك، وروبرت سترزودكا، وستيفان توريك. تسريع محاكاة الدقة المزدوجة (FEM) باستخدام وحدات معالجة الرسوميات. وقائع ASIM 2005 – الندوة الثامنة عشرة حول تقنية المحاكاة، 2005.
  30. ^ "Nvidia-Kepler-GK110-Architecture-Whitepaper" (PDF) . مؤرشف من الأصل (PDF) في 21 فبراير 2015.
  31. ^ "Inside Pascal: Nvidia's Newest Computing Platform Archived 7 مايو 2017 على موقع Wayback Machine "
  32. ^ "Inside Volta: وحدة معالجة الرسوميات لمركز البيانات الأكثر تقدمًا في العالم " محفوظ في 1 يناير 2020 على موقع Wayback Machine
  33. ^ "https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html ما مقدار الطاقة التي تحتاجها بطاقة الرسومات الخاصة بك؟"
  34. ^ "https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf مُسرِّع وحدة معالجة الرسوميات Nvidia Tesla P100 محفوظ في 24 يوليو 2018 على موقع Wayback Machine "
  35. ^ ab “D. Göddeke، 2010. حلول سريعة ودقيقة للعناصر المتعددة للعناصر المحدودة لمحاكاة PDE على مجموعات GPU. دكتوراه أطروحة، جامعة التقنية دورتموند “. مؤرشفة من الأصلي في 16 ديسمبر 2014.
  36. ^ Asanovic, K.; Bodik, R.; Demmel, J.; Keaveny, T.; Keutzer, K.; Kubiatowicz, J.; Morgan, N.; Patterson, D.; Sen, K.; Wawrzynek, J.; Wessel, D.; Yelick, K. (2009). "نظرة على مشهد الحوسبة المتوازية". Commun. ACM . 52 (10): 56–67. doi : 10.1145/1562764.1562783 .
  37. ^ "GPU Gems – الفصل 34، مصطلحات التحكم في تدفق وحدة معالجة الرسوميات".
  38. ^ Future Chips. "Tutorial on removal of branchs"، 2011
  39. ^ ورقة بحثية حول GPGPU مؤرشفة في 4 يناير 2007 على موقع Wayback Machine : جون د. أوينز، ديفيد لوبكي، ناجا جوفينداراجو، مارك هاريس، جينز كروجر، آرون إي. ليفوهن، وتيم بورسيل. "دراسة استقصائية حول الحوسبة العامة على أجهزة الرسوميات". منتدى الرسوميات الحاسوبية، المجلد 26، العدد 1، 2007، ص 80-113.
  40. ^ "S. Sengupta, M. Harris, Y. Zhang, JD Owens, 2007. Scan primitives for GPU computing. In T. Aila and M. Segal (eds.): Graphics Hardware (2007)". مؤرشف من الأصل في 5 يونيو 2015. تم الاسترجاع في 16 ديسمبر 2014 .
  41. ^ Blelloch, GE (1989). "Scans as primitive parallel processes" (PDF) . IEEE Transactions on Computers . 38 (11): 1526–1538. doi :10.1109/12.42122. مؤرشف من الأصل (PDF) في 23 سبتمبر 2015. تم الاسترجاع في 16 ديسمبر 2014 .
  42. ^ "M. Harris, S. Sengupta, JD Owens. Parallel Prefix Sum (Scan) with CUDA. In Nvidia: GPU Gems 3, Chapter 39".[ رابط ميت دائم ]
  43. ^ ميريل، دوان. تصميم الخوارزميات الموجهة نحو التخصيص مع التطبيق على الحوسبة باستخدام وحدة معالجة الرسوميات. أطروحة دكتوراه، قسم علوم الكمبيوتر، جامعة فرجينيا. ديسمبر 2011.
  44. ^ شون باكستر. وحدة معالجة الرسومات الحديثة أرشيف 7 أكتوبر 2016 على موقع واي باك مشين ، 2013.
  45. ^ Leung, Alan, Ondřej Lhoták, and Ghulam Lashari. "التوازي التلقائي لوحدات معالجة الرسومات". وقائع المؤتمر الدولي السابع حول مبادئ وممارسات البرمجة في جافا. ACM، 2009.
  46. ^ هنريكسن، ترويلز، مارتن إلسمان، وكوزمين إي. أونسيا. "تقسيم الحجم: نهج هجين لاستنتاج الحجم في الفوثارك". وقائع ورشة العمل الثالثة لـ ACM SIGPLAN حول الحوسبة الوظيفية عالية الأداء. ACM، 2014.
  47. ^ باسكاران، موثو مانيكاندان؛ بوندوغولا، عدي؛ كريشنامورثي، سريرام؛ رامانوجام، J.؛ رونتيف، أتاناس؛ سادايابان، ب. (2008). “إطار عمل مترجم لتحسين أعشاش الحلقة المتقاربة لـ gpgpus”. وقائع المؤتمر الدولي السنوي الثاني والعشرون للحوسبة الفائقة - ICS '08 . ص. 225. دوى :10.1145/1375527.1375562. رقم ISBN 9781605581583. S2CID  6137960.
  48. ^ "K. Crane, I. Llamas, S. Tariq, 2008. Real-Time Simulation and Rendering of 3D Fluids. In Nvidia: GPU Gems 3, Chapter 30".[ رابط ميت دائم ]
  49. ^ "M. Harris, 2004. Fast Fluid Dynamics Simulation on the GPU. In Nvidia: GPU Gems, Chapter 38". مؤرشف من الأصل في 7 أكتوبر 2017.
  50. ^ Block, Benjamin; Virnau, Peter; Preis, Tobias (2010). "Multi-GPU speeded multi-spin Monte Carlo simulators of the 2D Ising model". Computer Physics Communications . 181 (9): 1549–1556. arXiv : 1007.3726 . Bibcode :2010CoPhC.181.1549B. doi :10.1016/j.cpc.2010.05.005. S2CID  14828005.
  51. ^ Sun, S.; Bauer, C.; Beichel, R. (2011). "التجزئة الآلية ثلاثية الأبعاد للرئتين المصابتين بسرطان الرئة في بيانات التصوير المقطعي المحوسب باستخدام نهج نموذج الشكل النشط الجديد القوي". معاملات معهد مهندسي الكهرباء والإلكترونيات للتصوير الطبي . 31 (2): 449–460. doi :10.1109/TMI.2011.2171357. PMC 3657761. PMID  21997248 . 
  52. ^ Jimenez, Edward S., and Laurel J. Orr. "Rethinking the union of computed tomography rebuilding and GPGPU computing." Penetrating Radiation Systems and Applications XIV. Vol. 8854. International Society for Optics and Photonics, 2013.
  53. ^ Sorensen, TS; Schaeffter, T.; Noe, KO; Hansen, MS (2008). "تسريع تحويل فورييه السريع غير المتساوي المسافات على أجهزة الرسوميات التجارية". معاملات معهد مهندسي الكهرباء والإلكترونيات للتصوير الطبي . 27 (4): 538–547. doi :10.1109/TMI.2007.909834. PMID  18390350. S2CID  206747049.
  54. ^ جارسيا، فينسنت؛ دي بريف، إيريك؛ بارلاود، ميشيل (2008). "البحث السريع عن أقرب جار باستخدام وحدة معالجة الرسوميات". arXiv : 0804.1448 [cs.CV].
  55. ^ كوكوتشيوني، ماركو؛ جراسو، رافاييل؛ ريكسين، ميشيل (2011). "النمذجة السريعة لتطبيقات الحوسبة الضبابية عالية الأداء باستخدام برمجة وحدة معالجة الرسوميات عالية المستوى لدعم العمليات البحرية". ندوة معهد مهندسي الكهرباء والإلكترونيات لعام 2011 حول الذكاء الحاسوبي لتطبيقات الأمن والدفاع (CISDA) . ص 17-23. doi :10.1109/CISDA.2011.5945947. ISBN 978-1-4244-9939-7. S2CID  2089441.
  56. ^ Whalen, Sean (10 March 2005). Audio and the Graphics Processing Unit . CiteSeerX 10.1.1.114.365 . 
  57. ^ ويلسون، رون (3 سبتمبر 2009). "معالجة الإشارات الرقمية تقدم لك نزهة على سطح القمر عالية الدقة". EDN . مؤرشف من الأصل في 22 يناير 2013. تم الاسترجاع في 3 سبتمبر 2009. يُقال إن لوري يستخدم وحدات معالجة الرسوميات Nvidia Tesla (وحدات معالجة الرسوميات) المبرمجة في CUDA (هندسة الأجهزة الموحدة للحوسبة) الخاصة بالشركة لتنفيذ الخوارزميات. تزعم Nvidia أن وحدات معالجة الرسوميات أسرع بحوالي مرتبتين من حيث الحجم من عمليات الحوسبة التي تتم بواسطة وحدة المعالجة المركزية، مما يقلل من وقت المعالجة إلى أقل من دقيقة واحدة لكل إطار.
  58. ^ Alerstam, E.; Svensson, T.; Andersson-Engels, S. (2008). "Parallel computing with graphics processing units for high speed Monte Carlo simulator of photon migration" (PDF) . مجلة البصريات الطبية الحيوية . 13 (6): 060504. Bibcode :2008JBO....13f0504A. doi : 10.1117/1.3041496 . PMID  19123645. مؤرشف من الأصل (PDF) في 9 أغسطس 2011.
  59. ^ abc Hasan, Khondker S.; Chatterjee, Amlan; Radhakrishnan, Sridhar; Antonio, John K. (2014). "Performance Prediction Model and Analysis for Compute-Intensive Tasks on GPUs" (PDF) . Advanced Information Systems Engineering (PDF) . Lecture Notes in Computer Science. المجلد 7908. ص 612-617. doi :10.1007/978-3-662-44917-2_65. ISBN 978-3-642-38708-1.
  60. ^ "الفيزياء الحاسوبية باستخدام وحدات معالجة الرسوميات: مرصد لوند". www.astro.lu.se . مؤرشف من الأصل في 12 يوليو 2010.
  61. ^ Schatz, Michael C; Trapnell, Cole; Delcher, Arthur L; Varshney, Amitabh (2007). "محاذاة التسلسل عالي الإنتاجية باستخدام وحدات معالجة الرسومات". BMC Bioinformatics . 8 : 474. doi : 10.1186/1471-2105-8-474 . PMC 2222658. PMID  18070356 . 
  62. ^ Svetlin A. Manavski; Giorgio Valle (2008). "بطاقات وحدة معالجة الرسوميات المتوافقة مع CUDA كمسرعات أجهزة فعالة لمحاذاة تسلسل سميث-واترمان". BMC Bioinformatics . 9 (Suppl. 2): S10. doi : 10.1186/1471-2105-9-s2-s10 . PMC 2323659. PMID  18387198 . 
  63. ^ Olejnik, M; Steuwer, M; Gorlatch, S; Heider, D (15 نوفمبر 2014). "gCUP: التنبؤ السريع باستخدام مستقبلات فيروس نقص المناعة البشرية من النوع 1 المستندة إلى وحدة معالجة الرسوميات للتسلسل الجيني للجيل التالي". Bioinformatics . 30 (22): 3272–3. doi : 10.1093/bioinformatics/btu535 . PMID  25123901.
  64. ^ وانج، جوهوي، وآخرون. "تسريع خوارزميات الرؤية الحاسوبية باستخدام إطار عمل OpenCL على وحدة معالجة الرسوميات المحمولة - دراسة حالة". مؤتمر معهد مهندسي الكهرباء والإلكترونيات الدولي لعام 2013 حول الصوتيات والكلام ومعالجة الإشارات. معهد مهندسي الكهرباء والإلكترونيات، 2013.
  65. ^ Boyer, Vincent; El Baz, Didier (2013). "Recent Advances on GPU Computing in Operations Research". ندوة معهد مهندسي الكهرباء والإلكترونيات الدولية لعام 2013 حول المعالجة المتوازية والموزعة، ورش العمل ومنتدى الدكتوراه (PDF) . ص. 1778–1787. doi :10.1109/IPDPSW.2013.45. ISBN 978-0-7695-4979-8. S2CID  2774188.
  66. ^ Bukata, Libor; Sucha, Premysl; Hanzalek, Zdenek (2014). "حل مشكلة جدولة المشروع المقيدة بالموارد باستخدام البحث المحرم الموازي المصمم لمنصة CUDA". مجلة الحوسبة المتوازية والموزعة . 77 : 58–68. arXiv : 1711.04556 . doi :10.1016/j.jpdc.2014.11.005. S2CID  206391585.
  67. ^ بوميلت، زدينيك؛ دفورجاك، يناير؛ Šůcha، Přemysl؛ هانزاليك، زدينيك (2016). “نهج جديد لإعادة تعيين الممرضات على أساس خوارزمية متوازية”. المجلة الأوروبية للبحوث التشغيلية . 251 (2): 624-639. دوى :10.1016/j.ejor.2015.11.022.
  68. ^ CTU-IIG Archived 9 يناير 2016 على موقع Wayback Machine الجامعة التقنية التشيكية في براغ، مجموعة المعلوماتية الصناعية (2015).
  69. ^ NRRPGpu مؤرشف من الأصل في 9 يناير 2016 على موقع واي باك مشين. الجامعة التقنية التشيكية في براغ، مجموعة المعلوماتية الصناعية (2015).
  70. ^ ناجو مانشريل. "الفرز المعتمد على وحدة معالجة الرسوميات في PostgreSQL" (PDF) . كلية علوم الكمبيوتر – جامعة كارنيجي ميلون . مؤرشف من الأصل (PDF) في 2 أغسطس 2011.
  71. ^ مانافسكي، سفيتلين أ. "وحدة معالجة الرسوميات المتوافقة مع CUDA كمسرع أجهزة فعال لتشفير AES مؤرشف من الأصل في 7 مايو 2019 على موقع واي باك مشين ." مؤتمر معهد مهندسي الكهرباء والإلكترونيات الدولي لعام 2007 حول معالجة الإشارات والاتصالات. معهد مهندسي الكهرباء والإلكترونيات، 2007.
  72. ^ هاريسون، أوين؛ والدرون، جون (2007). "تطبيق وتحليل تشفير AES على وحدات معالجة الرسوميات السلعية". الأجهزة المشفرة والأنظمة المضمنة - CHES 2007. محاضرات في علوم الكمبيوتر. المجلد 4727. ص 209. CiteSeerX 10.1.1.149.7643 . doi :10.1007/978-3-540-74735-2_15. ISBN  978-3-540-74734-5.
  73. ^ AES وأساليب التشغيل على وحدات معالجة الرسوميات المتوافقة مع SM4.0. أرشيف 21 أغسطس 2010 على موقع Wayback Machine أوين هاريسون، جون والدرون، التشفير العملي باستخدام المفتاح المتماثل على أجهزة الرسوميات الحديثة. في وقائع مؤتمر USENIX Security 2008.
  74. ^ هاريسون، أوين؛ والدرون، جون (2009). "التسريع الفعّال للتشفير غير المتماثل على أجهزة الرسوميات". التقدم في التشفير – AFRICACRYPT 2009. محاضرات في علوم الكمبيوتر. المجلد 5580. ص 350. CiteSeerX 10.1.1.155.5448 . doi :10.1007/978-3-642-02384-2_22. ISBN  978-3-642-02383-5.
  75. ^ "مشاكل التيرافلوب: قوة وحدات معالجة الرسوميات قد تهدد نظام أمان كلمات المرور في العالم". معهد أبحاث جورجيا للتكنولوجيا . مؤرشف من الأصل في 30 ديسمبر 2010. تم الاسترجاع في 7 نوفمبر 2010 .
  76. ^ "هل تريد ردع المتسللين؟ اجعل كلمة مرورك أطول". NBC News . 19 أغسطس 2010. مؤرشف من الأصل في 11 يوليو 2013. تم الاسترجاع 7 نوفمبر 2010 .
  77. ^ ليرنر، لاري (9 أبريل 2009). "وجهة نظر: وحدات معالجة الرسوميات الضخمة، وليس وحدات المعالجة المركزية لمحاكاة EDA". EE Times . تم الاسترجاع في 14 سبتمبر 2023 .
  78. ^ "W2500 ADS Transient Convolution GT". يعمل على تسريع عمليات محاكاة سلامة الإشارة على محطات العمل التي تحتوي على وحدات معالجة رسومية (GPU) تعتمد على بنية الأجهزة الموحدة للحوسبة من Nvidia (CUDA)
  79. ^ Gravity: A Massively Parallel Antivirus Engine Archived 27 يوليو 2010 at the Wayback Machine . Giorgos Vasiliadis and Sotiris Ioannidis, Gravity: A Massively Parallel Antivirus Engine. In actions of RAID 2010.
  80. ^ "تستخدم كاسبرسكي لاب تقنيات إنفيديا لتعزيز الحماية". كاسبرسكي لاب . 14 ديسمبر 2009. مؤرشف من الأصل في 19 يونيو 2010. أثناء الاختبار الداخلي، أظهر جهاز Tesla S1070 زيادة قدرها 360 ضعفًا في سرعة خوارزمية تحديد التشابه عند مقارنته بمعالج Intel Core 2 Duo المركزي الشهير الذي يعمل بسرعة ساعة تبلغ 2.6 جيجاهرتز.
  81. ^ Gnort: High Performance Network Intrusion Detection Using Graphics Processors Archived 9 أبريل 2011 at the Wayback Machine . Giorgos Vasiliadis et al., Gnort: High Performance Network Intrusion Detection Using Graphics Processors. In actions of RAID 2008.
  82. ^ مطابقة التعبيرات العادية على أجهزة الرسوميات للكشف عن التطفل أرشيف 27 يوليو 2010 على موقع واي باك مشين . جيورجوس فاسيلياديس وآخرون، مطابقة التعبيرات العادية على أجهزة الرسوميات للكشف عن التطفل. في وقائع مؤتمر RAID 2009.
  83. ^ "تطبيقات تسريع وحدة معالجة الرسوميات" (PDF) . مؤرشف من الأصل (PDF) في 25 مارس 2013 . تم الاسترجاع في 12 سبتمبر 2013 .
  84. ^ Langdon, William B; Lam, Brian Yee Hong; Petke, Justyna; Harman, Mark (2015). "تحسين برنامج تحليل الحمض النووي CUDA باستخدام البرمجة الجينية". وقائع مؤتمر الحوسبة الجينية والتطورية لعام 2015 - GECCO '15 . ص. 1063-1070. doi :10.1145/2739480.2754652. ISBN 9781450334723. S2CID  8992769.

قراءة إضافية

  • أوينز، جيه دي؛ هيوستن، إم؛ لوبكي، دي؛ جرين، إس؛ ستون، جيه إي؛ فيليبس، جيه سي (مايو 2008). "حوسبة وحدة معالجة الرسومات". وقائع معهد مهندسي الكهرباء والإلكترونيات . 96 (5): 879-899. doi :10.1109/JPROC.2008.917757. ISSN  0018-9219. S2CID  17091128.
  • Brodtkorb, André R.; Hagen, Trond R.; Sætra, Martin L. (1 January 2013). "استراتيجيات برمجة وحدة معالجة الرسومات (GPU) واتجاهاتها في الحوسبة باستخدام وحدة معالجة الرسومات". مجلة الحوسبة المتوازية والموزعة . Metaheuristics on GPUs. 73 (1): 4–13. doi :10.1016/j.jpdc.2012.04.003. hdl : 10852/40283 . ISSN  0743-7315.


تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=الحوسبة_للأغراض_العامّة_على_وحدات_معالجة_الرسومات&oldid=1248605349"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate