الحوسبة للأغراض العامة على وحدات معالجة الرسومات
الحوسبة للأغراض العامة على وحدات معالجة الرسومات ( GPGPU ، أو GPGP اختصارًا ) هي استخدام وحدة معالجة الرسومات (GPU)، التي عادةً ما تتولى عمليات الحساب الخاصة برسومات الحاسوب فقط ، لإجراء عمليات حسابية في تطبيقات كانت تُعالج تقليديًا بواسطة وحدة المعالجة المركزية (CPU). [ 1 ] [ 2 ] [ 3 ] [ 4 ] ويؤدي استخدام بطاقات فيديو متعددة في جهاز حاسوب واحد، أو أعداد كبيرة من رقائق الرسومات، إلى زيادة التوازي في معالجة الرسومات، وهي طبيعة متوازية أصلًا. [ 5 ]
باختصار، تُعدّ سلسلة معالجة GPGPU نوعًا من المعالجة المتوازية بين وحدة معالجة رسومية واحدة أو أكثر ووحدة معالجة مركزية، مع تعليمات مُسرّعة خاصة لمعالجة الصور أو غيرها من البيانات الرسومية. ورغم أن وحدات المعالجة الرسومية تعمل بترددات أقل، إلا أنها عادةً ما تحتوي على أضعاف عدد عناصر المعالجة . وبالتالي، تستطيع وحدات المعالجة الرسومية معالجة عدد أكبر بكثير من الصور والبيانات الرسومية الأخرى في الثانية الواحدة مقارنةً بوحدة المعالجة المركزية التقليدية. ويمكن (نظريًا) أن يؤدي تحويل البيانات إلى شكل متوازٍ ثم استخدام وحدة المعالجة الرسومية لمعالجتها إلى تسريع كبير في الأداء .
طُوّرت خطوط معالجة الرسومات للأغراض العامة (GPGPU) في بداية القرن الحادي والعشرين لمعالجة الرسومات (مثلاً لتحسين أداء التظليل ). ومن المعروف في تاريخ الحوسبة الفائقة أن الحوسبة العلمية هي المحرك الرئيسي لأكبر تجمعات قوة الحوسبة في التاريخ، والمدرجة ضمن قائمة أفضل 500 شركة في العالم : حيث تستخدم غالبيتها اليوم وحدات معالجة الرسومات (GPUs) .
تُعد وحدات معالجة الرسومات للأغراض العامة (GPGPUs) الأكثر شهرة هي Nvidia Tesla التي تُستخدم في Nvidia DGX ، إلى جانب AMD Instinct و Intel Gaudi.
تاريخ
من حيث المبدأ، يمكن بناء أي دالة منطقية عشوائية، بما في ذلك الجمع والضرب وغيرها من الدوال الرياضية، من مجموعة كاملة وظيفيًا من عوامل التشغيل المنطقية. في عام 1987، أصبحت لعبة الحياة لكونواي واحدة من أوائل الأمثلة على الحوسبة للأغراض العامة باستخدام معالج تدفق مبكر يُسمى "بليتر" لاستدعاء سلسلة خاصة من العمليات المنطقية على متجهات البت. [ 6 ]
أصبح استخدام الحوسبة للأغراض العامة على وحدات معالجة الرسومات (GPUs) أكثر عملية وشيوعًا بعد عام 2001 تقريبًا، مع ظهور كلٍ من المُظلِّلات القابلة للبرمجة ودعم الفاصلة العائمة في معالجات الرسومات. والجدير بالذكر أن المسائل التي تتضمن المصفوفات و/أو المتجهات - وخاصة المتجهات ثنائية أو ثلاثية أو رباعية الأبعاد - كانت سهلة التحويل إلى وحدة معالجة الرسومات، التي تعمل بسرعة ودعم أصليين لهذه الأنواع. وكان عام 2003 علامة فارقة في مجال الحوسبة للأغراض العامة على وحدات معالجة الرسومات، حيث اكتشف فريقان بحثيان بشكل مستقل مناهج تعتمد على وحدات معالجة الرسومات لحل مسائل الجبر الخطي العام على وحدات معالجة الرسومات، والتي كانت تعمل بسرعة أكبر من وحدات المعالجة المركزية (CPUs). [ 7 ] [ 8 ] تطلبت هذه الجهود المبكرة لاستخدام وحدات معالجة الرسومات كمعالجات للأغراض العامة إعادة صياغة المسائل الحسابية باستخدام عناصر الرسومات الأساسية، كما تدعمها واجهتا برمجة التطبيقات الرئيسيتان لمعالجات الرسومات، وهما OpenGL و Direct3D . وقد تم تجاوز هذه العملية المعقدة مع ظهور لغات البرمجة وواجهات برمجة التطبيقات للأغراض العامة مثل Sh / RapidMind و Brook وAccelerator. [ 9 ] [ 10 ] [ 11 ]
تبع ذلك تقنية CUDA من إنفيديا ، التي سمحت للمبرمجين بتجاهل المفاهيم الرسومية الأساسية لصالح مفاهيم الحوسبة عالية الأداء الأكثر شيوعًا. [ 12 ] تشمل العروض الأحدث، المستقلة عن مُصنِّعي الأجهزة، تقنية DirectCompute من مايكروسوفت وتقنية OpenCL من آبل/مجموعة كرونوس . [ 12 ] هذا يعني أن خطوط أنابيب GPGPU الحديثة يمكنها الاستفادة من سرعة وحدة معالجة الرسومات دون الحاجة إلى تحويل البيانات بشكل كامل وصريح إلى شكل رسومي.
يدعي مارك هاريس، مؤسس موقع GPGPU.org، أنه هو من صاغ مصطلح GPGPU . [ 13 ]
التطبيقات
مكتبات البرامج وواجهات برمجة التطبيقات
أي لغة برمجة تسمح للبرنامج الذي يعمل على وحدة المعالجة المركزية باستطلاع مُظلِّل وحدة معالجة الرسومات للحصول على القيم المُعادة، يمكنها إنشاء إطار عمل للحوسبة المتوازية على وحدة معالجة الرسومات. تشمل معايير البرمجة للحوسبة المتوازية OpenCL (مستقلة عن المُصنِّع)، و OpenACC ، و OpenMP ، و OpenHMPP .
اعتبارًا من عام 2016تُعدّ OpenCL لغة الحوسبة العامة المفتوحة المهيمنة على وحدات معالجة الرسومات (GPU)، وهي معيار مفتوح وضعته مجموعة Khronos . توفر OpenCL منصة GPGPU متعددة المنصات تدعم أيضًا الحوسبة المتوازية للبيانات على وحدات المعالجة المركزية (CPU). وتحظى OpenCL بدعم فعّال على منصات Intel وAMD وNvidia وARM. كما قامت مجموعة Khronos بتوحيد وتطبيق SYCL ، وهو نموذج برمجة عالي المستوى لـ OpenCL كلغة مضمنة خاصة بمجال محدد، تعتمد على لغة C++11 النقية.
الإطار الاحتكاري السائد هو Nvidia CUDA . [ 14 ] أطلقت Nvidia CUDA في عام 2006، وهي عبارة عن مجموعة تطوير برمجيات (SDK) وواجهة برمجة تطبيقات (API) تسمح باستخدام لغة البرمجة C لكتابة خوارزميات للتنفيذ على سلسلة GeForce 8 وما بعدها من وحدات معالجة الرسومات.
يُعدّ ROCm ، الذي أُطلق عام 2016، ردّ AMD مفتوح المصدر على CUDA. واعتبارًا من عام 2022، يُضاهي CUDA من حيث الميزات، ولكنه لا يزال يفتقر إلى دعم المستخدمين.
تم تطوير OpenVIDIA في جامعة تورنتو بين عامي 2003 و2005، [ 15 ] بالتعاون مع Nvidia.
يقوم برنامج Altimesh Hybridizer، الذي طورته شركة Altimesh، بتحويل لغة الوسيط المشتركة ( CNIL) إلى ملفات ثنائية متوافقة مع CUDA. [ 16 ] [ 17 ] وهو يدعم الأنواع العامة والدوال الافتراضية. [ 18 ] كما أنه يدمج وظائف تصحيح الأخطاء وتحليل الأداء مع Visual Studio وNsight. [ 19 ] وهو متوفر كإضافة لـ Visual Studio على متجر Visual Studio Marketplace.
قدمت مايكروسوفت واجهة برمجة تطبيقات الحوسبة DirectCompute GPU، والتي تم إصدارها مع واجهة برمجة تطبيقات Direct3D 11 .
تُقدّم Alea GPU ، [ 20 ] التي طورتها شركة QuantAlea، [ 21 ] إمكانيات حوسبة GPU أصلية للغات Microsoft .NET، وهماF# [ 22 ] وC#. كما توفر Alea GPU نموذج برمجة GPU مُبسّطًا يعتمد على حلقات التكرار المتوازية (parallel-for) والتجميع المتوازي باستخدام المندوبين وإدارة الذاكرة التلقائية. [ 23 ]
يدعم MATLAB تسريع GPGPU باستخدام Parallel Computing Toolbox و MATLAB Distributed Computing Server ، [ 24 ] وحزم الطرف الثالث مثل Jacket .
تُستخدم معالجة GPGPU أيضًا لمحاكاة الفيزياء النيوتونية بواسطة محركات الفيزياء ، [ 25 ] وتشمل التطبيقات التجارية Havok Physics وFX و PhysX ، وكلاهما يستخدم عادةً لألعاب الكمبيوتر والفيديو .
C++ Accelerated Massive Parallelism ( C++ AMP ) هي مكتبة تعمل على تسريع تنفيذ كود C++ من خلال استغلال الأجهزة المتوازية للبيانات على وحدات معالجة الرسومات (GPUs).
أجهزة الكمبيوتر المحمولة
بسبب اتجاه زيادة قوة وحدات معالجة الرسومات المحمولة، أصبح البرمجة للأغراض العامة متاحًا أيضًا على الأجهزة المحمولة التي تعمل بأنظمة التشغيل المحمولة الرئيسية .
أتاح نظام أندرويد 4.2 من جوجل تشغيل كود RenderScript على وحدة معالجة الرسومات (GPU) للجهاز المحمول. [ 26 ] وقد تم إيقاف دعم RenderScript لاحقًا لصالح مُظللات الحوسبة OpenGL [ 27 ] ثم Vulkan Compute. [ 28 ] يتوفر OpenCL على العديد من أجهزة أندرويد، ولكنه غير مدعوم رسميًا من قِبل أندرويد. [ 29 ] قدمت آبل واجهة برمجة التطبيقات Metal الخاصة بها لتطبيقات iOS ، والقادرة على تنفيذ أي كود برمجي عبر مُظللات الحوسبة GPU الخاصة بآبل.
وحدة معالجة الرسومات مقابل وحدة المعالجة المركزية
في الأصل، كانت البيانات تُمرر في اتجاه واحد من وحدة المعالجة المركزية (CPU) إلى وحدة معالجة الرسومات (GPU)، ثم إلى جهاز العرض . مع مرور الوقت، أصبح من المهم لوحدات معالجة الرسومات تخزين هياكل بيانات بسيطة في البداية، ثم هياكل بيانات معقدة، ليتم إعادتها إلى وحدة المعالجة المركزية التي تحلل الصورة، أو مجموعة من البيانات العلمية المُمثلة بتنسيق ثنائي أو ثلاثي الأبعاد يمكن لبطاقة الفيديو فهمه. ولأن وحدة معالجة الرسومات لديها إمكانية الوصول إلى كل عملية رسم، فإنها تستطيع تحليل البيانات بهذه الأشكال بسرعة، بينما يتعين على وحدة المعالجة المركزية فحص كل بكسل أو عنصر بيانات ببطء شديد، لأن سرعة الوصول بين وحدة المعالجة المركزية ومجموعة ذاكرتها العشوائية الأكبر (أو في أسوأ الأحوال، القرص الصلب ) أبطأ من وحدات معالجة الرسومات وبطاقات الفيديو، التي تحتوي عادةً على كميات أصغر من الذاكرة ذات التكلفة الأعلى والتي تتميز بسرعة وصول أكبر. يؤدي نقل جزء من مجموعة البيانات المراد تحليلها بنشاط إلى ذاكرة وحدة معالجة الرسومات على شكل نسيج أو أشكال أخرى سهلة القراءة إلى زيادة السرعة. السمة المميزة لتصميم GPGPU هي القدرة على نقل المعلومات ثنائي الاتجاه من وحدة معالجة الرسومات إلى وحدة المعالجة المركزية؛ بشكل عام، يكون معدل نقل البيانات في كلا الاتجاهين عاليًا بشكل مثالي، مما يؤدي إلى تأثير مضاعف على سرعة خوارزمية معينة عالية الاستخدام .
قد تُحسّن خطوط معالجة الرسومات للأغراض العامة (GPGPU) الكفاءة بشكل خاص عند التعامل مع مجموعات البيانات الضخمة، أو البيانات التي تحتوي على صور ثنائية أو ثلاثية الأبعاد. تُستخدم هذه التقنية في خطوط معالجة الرسومات المعقدة، وكذلك في الحوسبة العلمية ؛ لا سيما في المجالات التي تتضمن مجموعات بيانات ضخمة مثل رسم خرائط الجينوم ، أو حيث يكون التحليل ثنائي أو ثلاثي الأبعاد مفيدًا - خاصةً في الوقت الحالي ، تحليل الجزيئات الحيوية ، ودراسة البروتينات ، وغيرها من تطبيقات الكيمياء العضوية المعقدة . ومن الأمثلة على هذه التطبيقات مجموعة برامج NVIDIA لتحليل الجينوم .
يمكن لهذه البنى التحتية أن تُحسّن بشكل كبير كفاءة معالجة الصور ورؤية الحاسوب ، من بين مجالات أخرى؛ فضلاً عن المعالجة المتوازية عموماً. وقد حققت بعض البنى التحتية المُحسّنة للغاية زيادة في السرعة تصل إلى مئات أضعاف سرعة البنية التحتية الأصلية القائمة على وحدة المعالجة المركزية في مهمة واحدة ذات استخدام عالٍ.
مثال بسيط على ذلك هو برنامج يعمل على وحدة معالجة الرسومات (GPU) يجمع بيانات حول متوسط قيم الإضاءة أثناء عرضه لمشهد ما، سواء من كاميرا أو برنامج رسومات حاسوبية، ثم يعيدها إلى البرنامج الرئيسي على وحدة المعالجة المركزية (CPU)، ليتمكن الأخير من إجراء تعديلات على العرض الكلي للشاشة. أما مثال أكثر تقدماً، فقد يستخدم تقنية كشف الحواف لإعادة معلومات رقمية وصورة مُعالجة تُمثل الخطوط الخارجية إلى برنامج رؤية حاسوبية يتحكم، على سبيل المثال، في روبوت متحرك. ولأن وحدة معالجة الرسومات تتمتع بوصول سريع ومحلي إلى كل بكسل أو عنصر آخر في الصورة، فإنها تستطيع تحليلها وحساب متوسطها (في المثال الأول)، أو تطبيق مرشح سوبل للحواف أو أي مرشح التفاف آخر (في المثال الثاني) بسرعة أكبر بكثير من وحدة المعالجة المركزية، التي عادةً ما تضطر إلى الوصول إلى نسخ من الصورة في ذاكرة الوصول العشوائي ( RAM) الأبطأ.
يُعدّ مفهوم GPGPU البرمجي نوعًا من الخوارزميات ، وليس جهازًا. مع ذلك، قد تُحسّن تصميمات الأجهزة المتخصصة كفاءة خطوط معالجة GPGPU، التي تُنفّذ عادةً عددًا قليلًا نسبيًا من الخوارزميات على كميات هائلة من البيانات. وبالتالي، يُمكن زيادة توازي المهام الضخمة ذات البيانات الهائلة عبر إعدادات متخصصة مثل الحوسبة الرفية (مجموعة من الأجهزة المتشابهة والمصممة خصيصًا والمدمجة في رف ) ، مما يُضيف طبقة ثالثة - وحدات حوسبة متعددة، تستخدم كل منها العديد من وحدات المعالجة المركزية (CPU) لتُقابلها العديد من وحدات معالجة الرسومات (GPU). استخدم بعض "مُعدني" البيتكوين هذه الإعدادات لمعالجة كميات كبيرة من البيانات. وتُوفّر قائمة TOP500 لأجهزة الحوسبة الفائقة معلوماتٍ عن أكبر هذه الأنظمة في العالم .
مخابئ
تاريخيًا، استخدمت وحدات المعالجة المركزية ذاكرة تخزين مؤقتة مُدارة بواسطة الأجهزة ، بينما كانت وحدات معالجة الرسومات (GPU) السابقة توفر ذاكرة محلية مُدارة بواسطة البرامج فقط. مع ذلك، ومع تزايد استخدام وحدات معالجة الرسومات في التطبيقات العامة، تُصمم وحدات معالجة الرسومات الحديثة بذاكرة تخزين مؤقتة متعددة المستويات مُدارة بواسطة الأجهزة، مما ساعدها على الانتشار في الحوسبة السائدة. على سبيل المثال، لم تكن وحدات معالجة الرسومات من سلسلة GeForce 200 ذات بنية GT200 مزودة بذاكرة تخزين مؤقتة من المستوى الثاني (L2)، بينما تحتوي وحدة معالجة الرسومات Fermi على ذاكرة تخزين مؤقتة من المستوى الأخير بسعة 768 كيلوبايت، ووحدة معالجة الرسومات Kepler على ذاكرة تخزين مؤقتة من المستوى الأخير بسعة 1.5 ميجابايت، ووحدة معالجة الرسومات Maxwell على ذاكرة تخزين مؤقتة من المستوى الأخير بسعة 2 ميجابايت، ووحدة معالجة الرسومات Pascal على ذاكرة تخزين مؤقتة من المستوى الأخير بسعة 4 ميجابايت.
ملف التسجيل
تتميز وحدات معالجة الرسومات (GPUs) بملفات تسجيل كبيرة جدًا ، مما يسمح لها بتقليل زمن استجابة تبديل السياق. كما يزداد حجم ملف التسجيل مع اختلاف أجيال وحدات معالجة الرسومات، فعلى سبيل المثال، يبلغ إجمالي حجم ملف التسجيل في وحدات معالجة الرسومات من نوع ماكسويل (GM200) وباسكال وفولتا 6 ميجابايت و14 ميجابايت و20 ميجابايت على التوالي. [ 31 ] [ 32 ] وبالمقارنة، فإن حجم ملف التسجيل في وحدات المعالجة المركزية (CPUs) صغير، ويتراوح عادةً بين عشرات ومئات الكيلوبايت.
باختصار: جميع أحمال عمل وحدة معالجة الرسومات (GPU) تقريبًا هي بطبيعتها متوازية بشكل هائل، وتعتمد على تحميل البيانات وحسابها وتخزينها، مثل عرض الصور المتجانبة . حتى تخزين متجه مؤقت واحد لاستدعائه لاحقًا (تحميل البيانات، حسابها، تخزينها، حسابها، تحميل البيانات، حسابها، تخزينها) مكلف للغاية بسبب مشكلة حد الذاكرة ، لذا يجب تجنبه بأي ثمن. [ 33 ] والنتيجة هي زيادة حجم ملف السجلات . في وحدات المعالجة المركزية القياسية، من الممكن إضافة ذاكرة تخزين مؤقتة ( ذاكرة تخزين مؤقتة D ) لحل هذه المشكلة، إلا أن حجمها كبير نسبيًا، مما يجعل إضافتها غير عملية في وحدات معالجة الرسومات التي تحتاج إلى واحدة لكل عنصر معالجة. وقد حلّت وحدة معالجة الرسومات ILLIAC IV المشكلة بشكل مبتكر حوالي عام 1967 من خلال إضافة ذاكرة محلية لكل عنصر معالجة (PEM): وهي استراتيجية تم نسخها في Aspex ASP .
موارد التنفيذ
تختلف وحدات معالجة الرسومات للأغراض العامة (GPGPUs) اختلافًا كبيرًا فيما بينها في مقدار موارد التنفيذ المخصصة لكل مجموعة من "النوى" التي تُنفذ سلسلة من العمليات، والتي تُسمى تارةً "معالج متعدد التدفق" (SM) من قِبل Nvidia، وتارةً أخرى "وحدة حسابية" (CU) أو "معالج مجموعة العمل" (WGP) من قِبل AMD وفقًا للبنية الدقيقة، وتارةً ثالثةً "Xe Core" من قِبل Intel، وكلها مصممة لتنفيذ ما يُسمى "مجموعة العمل" في OpenCL . [ 34 ] وكما هو الحال مع وحدات المعالجة المركزية (CPUs) التي قد تختار تنفيذ تعليمات المتجهات الأوسع في أجزاء أصغر (على سبيل المثال، دعمت AMD Bulldozer تعليمات AVX ذات 256 بت عن طريق تقسيمها إلى عمليتين 128 بت) لتوفير الطاقة و/أو مساحة الشريحة، [ 35 ] فإن مصممي وحدات معالجة الرسومات (GPUs) يُغيرون أيضًا عدد وحدات التنفيذ لتناسب أحمال العمل المتوقعة.
في وحدة معالجة الرسومات للأغراض العامة (GPGPU)، يمكن أن تختلف نسب كل مورد من الموارد التالية بحرية عن غيره: FP64 (FMA)، FP32 (FMA)، FP16 (FMA)، جمع الأعداد الصحيحة 32 بت، ضرب الأعداد الصحيحة 32 بت، RCP/RSQRT. (يمكن الاطلاع على مثال في وثائق Nvidia حول موارد التنفيذ الموجودة في كل وحدة معالجة متعددة (SM) من أجيال مختلفة (قدرة حسابية) من وحدات معالجة الرسومات. يتم التعامل مع FP16 غير المصفوفي بواسطة نوى FP32. [ 36 ] ) غالبًا ما تستثمر وحدات معالجة الرسومات للأغراض العامة المخصصة للحوسبة العلمية بشكل أكبر في FP64، بينما تميل تلك المصممة للتعلم العميق إلى الاستثمار بشكل أكبر في FP16، وعمليات الأعداد الصحيحة "المضغوطة" ذات عرض البت المنخفض، ووحدات ضرب المصفوفات المخصصة الإضافية ("وحدات المصفوفات"، "نوى الموترات"). [ 37 ] [ 38 ]
لذلك، لا يكفي مجرد تحديد القدرات الحسابية لوحدة معالجة الرسومات من حيث FLOPS: يجب عرض قيم FLOPS بشكل منفصل لأوضاع المصفوفة مقابل الأوضاع غير المصفوفية، ويجب أيضًا عرض أرقام (T)OPS لعمليات الأعداد الصحيحة.
كفاءة الطاقة
يأتي الأداء العالي لوحدات معالجة الرسومات (GPUs) على حساب استهلاك عالٍ للطاقة، والذي يصل في الواقع، تحت الحمل الكامل، إلى نفس استهلاك الطاقة لبقية مكونات نظام الحاسوب مجتمعة. [ 39 ] وقد حُدد الحد الأقصى لاستهلاك الطاقة لوحدة معالجة الرسومات من سلسلة باسكال (Tesla P100) بـ 250 واط. [ 40 ]
من حيث القدرة الحاسوبية الخام (مثل عدد عمليات الفاصلة العائمة في الثانية، وعدد عمليات البت في الثانية، وما إلى ذلك)، تميل وحدات معالجة الرسومات إلى تقديم أداء أفضل لكل واط مقارنةً بوحدة المعالجة المركزية التقليدية. ومع ذلك، يتطلب الأمر برنامجًا مكتوبًا جيدًا وحمل عمل مناسبًا لاستخراج معظم هذه القدرة، حيث أن معظم الوقت (والطاقة) سيُهدر في غير ذلك على الوصول إلى الذاكرة المحلية وذاكرة المضيف.
معالج رسومات GPGPU الكلاسيكي
قبل نشر CUDA في عام 2007، كانت معالجة الرسومات للأغراض العامة (GPGPU) تُعتبر "تقليدية" وتعتمد على إعادة استخدام العناصر الرسومية الأساسية. وكان الهيكل القياسي لهذه المعالجة كالتالي:
- تحميل المصفوفات في الصور النسيجية
- ارسم شكلاً رباعياً
- قم بتطبيق تظليل البكسل والقوام على الشكل الرباعي
- اقرأ قيم البكسل في الشكل الرباعي كمصفوفة
تتوفر المزيد من الأمثلة في الجزء 4 من كتاب GPU Gems 2. [ 41 ]
الجبر الخطي
بدأ استخدام وحدة معالجة الرسومات (GPU) للجبر الخطي العددي على الأقل في عام 2001. [ 42 ] وقد تم استخدامها لحل Gauss-Seidel، والتدرجات المترافقة، وما إلى ذلك. [ 43 ]
دعم الأجهزة
تُنتج بطاقات الفيديو الخاصة بالحاسوب من قبل شركات مختلفة، مثل إنفيديا وإيه إم دي . وتختلف هذه البطاقات من حيث دعمها لتنسيقات البيانات، مثل تنسيقات الأعداد الصحيحة والعشرية (32 بت و64 بت). وقد قدمت مايكروسوفت معيار Shader Model ، لتسهيل تصنيف ميزات بطاقات الرسومات المختلفة ضمن رقم إصدار Shader Model (1.0، 2.0، 3.0، إلخ).
الأعداد الصحيحة
كانت بطاقات الفيديو قبل Direct3D 9 تدعم فقط أنواع الألوان المُقسّمة إلى لوحات أو ألوان عددية صحيحة. أحيانًا تُضاف قيمة ألفا أخرى لاستخدامها في الشفافية. من التنسيقات الشائعة:
- 8 بتات لكل بكسل – أحيانًا يكون وضع لوحة الألوان، حيث تمثل كل قيمة فهرسًا في جدول مع تحديد قيمة اللون الحقيقية بأحد التنسيقات الأخرى. أحيانًا تكون ثلاث بتات للأحمر، وثلاث بتات للأخضر، وبتين للأزرق.
- 16 بت لكل بكسل - عادة ما يتم تخصيص البتات على النحو التالي: خمسة بتات للأحمر، وستة بتات للأخضر، وخمسة بتات للأزرق.
- 24 بت لكل بكسل - هناك ثمانية بتات لكل من الأحمر والأخضر والأزرق.
- 32 بت لكل بكسل - هناك ثمانية بتات لكل من الأحمر والأخضر والأزرق وألفا .
الأرقام العشرية
بالنسبة لوحدات معالجة الرسومات القديمة ذات الوظائف الثابتة أو ذات قابلية البرمجة المحدودة (أي حتى وحدات معالجة الرسومات المتوافقة مع Direct3D 8.1)، كان هذا كافيًا لأنه نفس التمثيل المستخدم في الشاشات. مع ذلك، لهذا التمثيل بعض القيود. فمع توفر قوة معالجة رسومات كافية، حتى مبرمجو الرسومات يفضلون استخدام تنسيقات أفضل، مثل تنسيقات بيانات الفاصلة العائمة ، للحصول على تأثيرات مثل التصوير عالي النطاق الديناميكي . تتطلب العديد من تطبيقات GPGPU دقة الفاصلة العائمة، والتي كانت متوفرة في بطاقات الفيديو المتوافقة مع مواصفات Direct3D 9.
اقترح نموذج التظليل Direct3D 9 Shader Model 2.x دعم نوعين من الدقة: الدقة الكاملة والدقة الجزئية. يمكن أن تكون الدقة الكاملة إما FP32 أو FP24 (عدد عشري 32 أو 24 بت لكل مكون) أو أعلى، بينما كانت الدقة الجزئية FP16. دعمت سلسلة معالجات الرسوميات Radeon R300 من ATI دقة FP24 فقط في مسار التجزئة القابل للبرمجة (على الرغم من دعم FP32 في معالجات الرؤوس)، بينما دعمت سلسلة NV30 من Nvidia كلاً من FP16 وFP32؛ ودعم موردون آخرون مثل S3 Graphics و XGI مزيجًا من التنسيقات حتى FP24.
معظم تطبيقات الفاصلة العائمة على وحدات معالجة الرسومات من إنفيديا متوافقة مع معايير IEEE ، إلا أن هذا لا ينطبق على جميع الشركات المصنعة. [ 44 ] ويؤثر هذا على دقة البيانات، وهو أمر بالغ الأهمية لبعض التطبيقات العلمية. بينما تتوفر قيم الفاصلة العائمة 64 بت (الدقة المزدوجة) بشكل شائع على وحدات المعالجة المركزية، إلا أنها غير مدعومة بشكل كامل على وحدات معالجة الرسومات. فبعض بنى وحدات معالجة الرسومات تتخلى عن التوافق مع معايير IEEE، بينما تفتقر بنى أخرى إلى الدقة المزدوجة. وقد بُذلت جهود لمحاكاة قيم الفاصلة العائمة ذات الدقة المزدوجة على وحدات معالجة الرسومات، إلا أن التضحية بالسرعة تُفقد أي فائدة من نقل العمليات الحسابية إلى وحدة معالجة الرسومات في المقام الأول. [ 45 ]
تحويل البيانات إلى متجهات
تُنفَّذ معظم العمليات على وحدة معالجة الرسومات (GPU) بطريقة متجهة: حيث يمكن تنفيذ عملية واحدة على ما يصل إلى أربع قيم في آنٍ واحد. على سبيل المثال، إذا أردنا تعديل لون ⟨R1 , G1, B1⟩ بواسطة لون آخر ⟨R2 , G2, B2⟩ ، فإن وحدة معالجة الرسومات تستطيع إنتاج اللون الناتج ⟨R1 *R2, G1*G2, B1*B2⟩ في عملية واحدة. تُعد هذه الخاصية مفيدة في مجال الرسومات لأن جميع أنواع البيانات الأساسية تقريبًا عبارة عن متجه (ثنائي أو ثلاثي أو رباعي الأبعاد). ومن الأمثلة على ذلك الرؤوس والألوان والمتجهات العمودية وإحداثيات النسيج.
معالجة البيانات المتدفقة
صُممت وحدات معالجة الرسومات (GPUs) في الأصل خصيصًا للرسومات، ولذلك فهي محدودة للغاية في العمليات والبرمجة. وبسبب تصميمها، لا تُجدي وحدات معالجة الرسومات نفعًا إلا في حل المشكلات التي يمكن حلها باستخدام معالجة البيانات المتدفقة ، ولا يمكن استخدام هذه الأجهزة إلا بطرق محددة.
في بدايات عصر معالجة الرسومات للأغراض العامة (GPGPU)، كانت وحدات معالجة الرسومات قادرة على معالجة الرؤوس والأجزاء المستقلة فقط، ولكنها تستطيع معالجة العديد منها بالتوازي. يُعدّ هذا الأمر فعالاً للغاية عندما يرغب المبرمج في معالجة العديد من الرؤوس أو الأجزاء بنفس الطريقة. وبهذا المعنى، تُعتبر وحدات معالجة الرسومات معالجات تدفقية - أي معالجات قادرة على العمل بالتوازي من خلال تشغيل نواة واحدة على العديد من السجلات في تدفق واحد في آنٍ واحد. وكان المبرمجون يستخدمون واجهات برمجة التطبيقات الرسومية ( OpenGL أو Direct3D ) لإجراء العمليات الحسابية العامة.
مع إطلاق واجهات برمجة تطبيقات الحوسبة العامة CUDA (إنفيديا، 2007) و OpenCL (مستقلة عن المورد، 2008)، لم يعد من الضروري في برامج GPGPU الجديدة ربط العمليات الحسابية بعناصر الرسومات الأساسية. تبقى طبيعة معالجة البيانات المتدفقة لوحدات معالجة الرسومات (GPUs) قائمة بغض النظر عن واجهات برمجة التطبيقات المستخدمة. (انظر على سبيل المثال، [ 46 ] )
التدفق هو ببساطة مجموعة من السجلات التي تتطلب عمليات حسابية متشابهة. توفر التدفقات معالجة البيانات بالتوازي. النوى هي الدوال التي تُطبق على كل عنصر في التدفق. في وحدات معالجة الرسومات، تُعد الرؤوس والأجزاء عناصر التدفق، بينما تُعد مُظللات الرؤوس والأجزاء هي النوى التي تُنفذ عليها. لكل عنصر، يمكننا فقط القراءة من المدخلات، وإجراء عمليات عليه، والكتابة إلى المخرجات. يُسمح بوجود مدخلات ومخرجات متعددة، ولكن لا يُسمح بوجود جزء من الذاكرة قابل للقراءة والكتابة في آنٍ واحد.
تُعرَّف الكثافة الحسابية بأنها عدد العمليات المُنفَّذة لكل كلمة من الذاكرة المنقولة. من المهم لتطبيقات GPGPU أن تتمتع بكثافة حسابية عالية، وإلا فإن زمن استجابة الوصول إلى الذاكرة سيحدّ من تسريع الحساب. [ 47 ]
تتميز تطبيقات GPGPU المثالية بمجموعات بيانات كبيرة، وتوازي عالٍ، واعتماد ضئيل بين عناصر البيانات.
مفاهيم برمجة وحدة معالجة الرسومات
الموارد الحاسوبية
تتوفر مجموعة متنوعة من الموارد الحسابية على وحدة معالجة الرسومات (GPU):
- تتيح المعالجات القابلة للبرمجة - بما في ذلك معالجات الرؤوس، والمعالجات الأولية، ومعالجات الأجزاء، وخطوط معالجة البيانات بشكل أساسي - للمبرمج تنفيذ عمليات النواة على تدفقات البيانات.
- المُرَسِّم – يُنشئ أجزاءً ويُجري استيفاءً للثوابت الخاصة بكل رأس، مثل إحداثيات النسيج واللون
- وحدة النسيج – واجهة ذاكرة للقراءة فقط
- مخزن الإطارات – واجهة ذاكرة للكتابة فقط
في الواقع، يمكن للبرنامج استبدال إطار العرض بنسيج مخصص للكتابة فقط. ويتم ذلك إما من خلال تقنية العرض إلى النسيج (RTT)، أو تقنية العرض إلى المخزن المؤقت الخلفي ثم نسخه إلى نسيج (RTBCTT)، أو تقنية الإخراج المتدفق الأحدث .
القوام كتدفق
الشكل الأكثر شيوعًا لتدفق البيانات في معالجة الرسومات للأغراض العامة (GPGPU) هو شبكة ثنائية الأبعاد، لأن هذا يتناسب بشكل طبيعي مع نموذج العرض المدمج في وحدات معالجة الرسومات. العديد من العمليات الحسابية تتناسب بشكل طبيعي مع الشبكات: جبر المصفوفات، ومعالجة الصور، والمحاكاة الفيزيائية، وما إلى ذلك.
بما أن الصور تُستخدم كذاكرة، فإن عمليات البحث عن الصور تُستخدم بدورها كعمليات قراءة من الذاكرة. وبفضل ذلك، يمكن لوحدة معالجة الرسومات (GPU) تنفيذ بعض العمليات تلقائيًا.
حساب النوى
يمكن اعتبار نواة الحساب بمثابة جسم الحلقات . على سبيل المثال، قد يكون لدى المبرمج الذي يعمل على شبكة على وحدة المعالجة المركزية كود يبدو كالتالي:
// تحتوي شبكات الإدخال والإخراج على 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 ]); } } }على وحدة معالجة الرسومات، يحدد المبرمج فقط جسم الحلقة كنواة والبيانات التي سيتم تكرارها عن طريق استدعاء معالجة الهندسة.
التحكم في التدفق
للحصول على معلومات تقنية دقيقة حول هذا الموضوع، انظر Predication_(computer_architecture)#SIMD,_SIMT_and_vector_predication و ILLIAC IV "branching" (لم يكن مصطلح "predicate mask" موجودًا في عام 1967).
في البرمجة التسلسلية، يُمكن التحكم في تدفق البرنامج باستخدام عبارات if-then-else وحلقات التكرار المختلفة. تتوفر هياكل التحكم هذه في وحدات معالجة الرسومات (GPUs). [ 48 ] كان من الممكن إجراء عمليات الكتابة المشروطة باستخدام سلسلة مُصممة بعناية من العمليات الحسابية/البتية، ولكن لم يكن من الممكن استخدام حلقات التكرار أو التفرع المشروط.
تسمح وحدات معالجة الرسومات الحديثة بالتفرع، ولكن عادةً ما يكون ذلك على حساب الأداء. يُنصح عمومًا بتجنب التفرع في الحلقات الداخلية، سواء في كود وحدة المعالجة المركزية أو وحدة معالجة الرسومات، ويمكن استخدام طرق مختلفة، مثل حل التفرع الثابت، والحساب المسبق، والتنبؤ، وتقسيم الحلقات، [ 49 ] وZ-cull [ 50 ] لتحقيق التفرع عندما لا يتوفر دعم الأجهزة.
أساليب وحدة معالجة الرسومات
رسم خريطة
تُطبّق عملية الخريطة ببساطة الدالة المُعطاة (النواة) على كل عنصر في التدفق. مثال بسيط على ذلك هو ضرب كل قيمة في التدفق بثابت (زيادة سطوع الصورة). عملية الخريطة سهلة التنفيذ على وحدة معالجة الرسومات (GPU). يُنشئ المبرمج جزءًا لكل بكسل على الشاشة ويُطبّق برنامج الجزء على كل جزء. يُخزّن تدفق النتائج بنفس الحجم في مخزن الإخراج المؤقت.
يقلل
تتطلب بعض العمليات الحسابية حساب تدفق أصغر (ربما تدفق مكون من عنصر واحد فقط) من تدفق أكبر. يُسمى هذا اختزال التدفق. عمومًا، يمكن إجراء الاختزال على عدة مراحل. تُستخدم نتائج المرحلة السابقة كمدخلات للمرحلة الحالية، ويتم تقليص النطاق الذي تُطبق عليه العملية حتى يتبقى عنصر واحد فقط من التدفق.
تصفية البث
تُعدّ عملية تصفية البيانات المتدفقة في جوهرها عملية تقليل غير منتظمة. وتتضمن التصفية إزالة العناصر من البيانات المتدفقة بناءً على معايير محددة.
مسح ضوئي
تستقبل عملية المسح، والتي تُسمى أيضًا بمجموع البادئات المتوازي ، متجهًا (تدفقًا) من عناصر البيانات ودالة ثنائية ترابطية (اختيارية) '+' مع عنصر محايد 'i' . إذا كان المدخل [a0, a1, a2, a3, ...]، فإن المسح الحصري يُنتج المخرج [i, a0, a0 + a1, a0 + a1 + a2, ...]، بينما يُنتج المسح الشامل المخرج [a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] ولا يتطلب وجود عنصر محايد. على الرغم من أن العملية قد تبدو تسلسلية بطبيعتها للوهلة الأولى، إلا أنه من الممكن وجود خوارزميات مسح متوازية فعالة، وقد تم تطبيقها على وحدات معالجة الرسومات. تُستخدم عملية المسح في تطبيقات مثل الفرز السريع وضرب المصفوفات المتفرقة في المتجهات. [ 46 ] [ 51 ] [ 52 ] [ 53 ]
تشتت
The scatter operation is most naturally defined on the vertex processor. The vertex processor is able to adjust the position of the vertex, which allows the programmer to control where information is deposited on the grid. Other extensions are also possible, such as controlling how large an area the vertex affects.
The fragment processor cannot perform a direct scatter operation because the location of each fragment on the grid is fixed at the time of the fragment's creation and cannot be altered by the programmer. However, a logical scatter operation may sometimes be recast or implemented with another gather step. A scatter implementation would first emit both an output value and an output address. An immediately following gather operation uses address comparisons to see whether the output value maps to the current output slot.
In dedicated compute kernels, scatter can be performed by indexed writes.
Gather
Gather is the reverse of scatter. After scatter reorders elements according to a map, gather can restore the order of the elements according to the map scatter used. In dedicated compute kernels, gather may be performed by indexed reads. In other shaders, it is performed with texture-lookups.
Sort
The sort operation transforms an unordered set of elements into an ordered set of elements. The most common implementation on GPUs is using radix sort for integer and floating point data and coarse-grained merge sort and fine-grained sorting networks for general comparable data.[54][55]
Search
The search operation allows the programmer to find a given element within the stream, or possibly find neighbors of a specified element. Mostly the search method used is binary search on sorted elements.
Data structures
A variety of data structures can be represented on the GPU:
- Dense arrays
- Sparse matrices (sparse array) – static or dynamic
- Adaptive structures (union type)
Applications
The following are some of the areas where GPUs have been used for general purpose computing:
- Automatic parallelization[56][57][58]
- Physical based simulation and physics engines[25] (usually based on Newtonian physics models)
- الفيزياء الإحصائية
- نظرية قياس الشبكة [ 62 ]
- التجزئة – ثنائية الأبعاد وثلاثية الأبعاد [ 63 ]
- أساليب مجموعة المستويات
- إعادة بناء التصوير المقطعي المحوسب [ 64 ]
- تحويل فورييه السريع [ 65 ]
- التعلم باستخدام وحدة معالجة الرسومات (GPU) – عمليات التعلم الآلي واستخراج البيانات ، على سبيل المثال، باستخدام برنامج BIDMach
- خوارزمية أقرب جار k [ 66 ]
- المنطق الضبابي [ 67 ]
- رسم خرائط النغمات
- معالجة الإشارات الصوتية [ 68 ]
- معالجة الصوت والمؤثرات الصوتية، لاستخدام وحدة معالجة الرسومات ( GPU ) لمعالجة الإشارات الرقمية (DSP).
- معالجة الإشارات التناظرية
- معالجة الكلام
- معالجة الصور الرقمية
- معالجة الفيديو [ 69 ]
- فك تشفير الفيديو ومعالجة ما بعد المعالجة باستخدام تسريع الأجهزة
- تعويض الحركة (mo comp)
- التحويل العكسي المنفصل لجيب التمام (iDCT)
- فك التشفير ذو الطول المتغير (VLD)، ترميز هوفمان
- التكميم العكسي (معدل الذكاء، لا ينبغي الخلط بينه وبين حاصل الذكاء )
- إزالة التشويش داخل الحلقة
- معالجة تدفق البتات ( CAVLC / CABAC ) باستخدام أجهزة مخصصة لهذا الغرض لأن هذه مهمة تسلسلية غير مناسبة لحسابات GPGPU العادية.
- إزالة التشابك
- إزالة التشابك المكاني الزمني
- تقليل الضوضاء
- تحسين الحواف
- تصحيح الألوان
- ترميز الفيديو والمعالجة المسبقة باستخدام تسريع الأجهزة
- فك تشفير الفيديو ومعالجة ما بعد المعالجة باستخدام تسريع الأجهزة
- الإضاءة العالمية – تتبع الأشعة ، ورسم خرائط الفوتونات ، والإشعاعية من بين أمور أخرى، وتشتت الضوء تحت السطح
- الحوسبة الهندسية – الهندسة الصلبة البنائية ، حقول المسافة، اكتشاف التصادم ، حساب الشفافية، توليد الظلال
- الحوسبة العلمية
- نظرية الأعداد
- المعلوماتية الحيوية [ 74 ] [ 75 ]
- التصوير الطبي
- نظام دعم القرار السريري (CDSS) [ 76 ]
- رؤية الحاسوب [ 77 ]
- معالجة الإشارات الرقمية / معالجة الإشارات
- هندسة التحكم
- بحوث العمليات [ 78 ] [ 79 ] [ 80 ]
- تتوفر تطبيقات خوارزمية البحث المحظور لوحدة معالجة الرسومات (GPU) لحل مشكلة جدولة المشاريع ذات الموارد المحدودة مجانًا على GitHub؛ [ 81 ] كما تتوفر خوارزمية وحدة معالجة الرسومات (GPU) لحل مشكلة جدولة الممرضات مجانًا على GitHub. [ 82 ]
- الشبكات العصبية
- عمليات قواعد البيانات [ 83 ]
- ديناميكا الموائع الحسابية، وخاصة باستخدام طرق بولتزمان الشبكية
- علم التشفير [ 84 ] وتحليل الشفرات
- نمذجة الأداء: المهام كثيفة الحساب على وحدة معالجة الرسومات [ 71 ]
- تطبيقات لـ: MD6 ، معيار التشفير المتقدم (AES)، [ 85 ] [ 86 ] معيار تشفير البيانات (DES)، RSA ، [ 87 ] تشفير المنحنى الإهليلجي (ECC)
- اختراق كلمات المرور [ 88 ] [ 89 ]
- معالجة معاملات العملات المشفرة ("التعدين") ( تعدين البيتكوين )
- أتمتة التصميم الإلكتروني [ 90 ] [ 91 ]
- برامج مكافحة الفيروسات [ 92 ] [ 93 ]
- كشف التسلل [ 94 ] [ 95 ]
- زيادة القدرة الحاسوبية لمشاريع الحوسبة الموزعة مثل SETI@home و Einstein@home
المعلوماتية الحيوية
استخدام GPGPU في المعلوماتية الحيوية: [ 71 ] [ 96 ]
| طلب | وصف | الميزات المدعومة | التسارع المتوقع [ أ ] | وحدة معالجة الرسومات [ ب ] | دعم متعدد وحدات معالجة الرسومات | حالة الإصدار |
|---|---|---|---|---|---|---|
| باراكودا | الحمض النووي، بما في ذلك علم التخلق، وبرامج رسم خرائط التسلسل [ 97 ] | محاذاة قراءات التسلسل القصيرة | 6-10 أضعاف | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 0.7.107f |
| CUDASW++ | برنامج مفتوح المصدر للبحث في قواعد بيانات البروتينات باستخدام خوارزمية سميث-واترمان على وحدات معالجة الرسومات (GPUs). | البحث المتوازي في قاعدة بيانات سميث-واترمان | 10-50 ضعفًا | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 2.0.8 |
| كوشو | مُحاذي القراءات القصيرة المتوازية | مُحاذي قراءات طويلة متوازي ودقيق - محاذاة متقطعة للجينومات الكبيرة | 10x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 1.0.40 |
| GPU-BLAST | البحث المحلي باستخدام خوارزمية k -tuple السريعة | محاذاة البروتين وفقًا لـ blastp، خيوط وحدة المعالجة المركزية المتعددة | 3-4x | T 2075، 2090، K10، K20، K20X | للعزاب فقط | متوفر الآن، الإصدار 2.2.26 |
| GPU-HMMER | بحث محلي وعالمي متوازٍ باستخدام نماذج ماركوف المخفية للملفات الشخصية | البحث المحلي والعالمي المتوازي عن نماذج ماركوف المخفية | 60-100x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 2.3.2 |
| ميم mCUDA | خوارزمية اكتشاف الأنماط فائقة السرعة وقابلة للتوسع تعتمد على MEME | خوارزمية اكتشاف الأنماط القابلة للتطوير والمبنية على MEME | 4-10 أضعاف | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 3.0.12 |
| SeqNFind | مجموعة أدوات تحليل التسلسل المُسرّع بواسطة وحدة معالجة الرسومات | تجميع مرجعي، تفجير، سميث-واترمان، همم، تجميع من الصفر | 400x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن |
| يوجين | مفتوح المصدر Smith–Waterman لـ SSE/CUDA، مكتشف التكرارات القائم على مصفوفة لاحقة وdotplot | محاذاة سريعة للقراءات القصيرة | 6-8x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 1.11 |
| WideLM | يُناسب العديد من النماذج الخطية مع تصميم واستجابة ثابتة | الانحدار الخطي المتوازي على نماذج متعددة متشابهة الشكل | 150x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 0.1-1 |
الديناميكا الجزيئية
| طلب | وصف | الميزات المدعومة | التسارع المتوقع [ أ ] | وحدة معالجة الرسومات [ ب ] | دعم متعدد وحدات معالجة الرسومات | حالة الإصدار |
|---|---|---|---|---|---|---|
| أذن البحر | نماذج الديناميكيات الجزيئية للبوليمرات الحيوية لمحاكاة البروتينات والحمض النووي والروابط | المذيب الصريح والضمني، مونت كارلو الهجين | 4–120x | T 2075، 2090، K10، K20، K20X | للعزاب فقط | متوفر الآن، الإصدار 1.8.88 |
| ACEMD | محاكاة باستخدام وحدة معالجة الرسومات لحقول القوى الميكانيكية الجزيئية، والمذيب الضمني والصريح | مصمم للاستخدام على وحدات معالجة الرسومات (GPUs) | إصدار وحدة معالجة الرسومات فقط (160 نانوثانية/يوم) | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن |
| كهرماني | مجموعة برامج لمحاكاة الديناميكيات الجزيئية على الجزيئات الحيوية | PMEMD: المذيب الصريح والضمني | 89.44 نانوثانية/يوم JAC NVE | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 12 + إصلاح الأخطاء 9 |
| DL-POLY | محاكاة الجزيئات الكبيرة والبوليمرات والأنظمة الأيونية وما إلى ذلك على حاسوب متوازي ذي ذاكرة موزعة | قوى الجسمين، أزواج الخلايا الرابطة، قوى إيوالد SPME، اهتزاز VV | 4x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 4.0 (مصدر فقط) |
| سحر | حزمة MD لمحاكاة الديناميكيات الجزيئية على الجزيئات الحيوية. | المذيب الضمني (5x)، والمذيب الصريح (2x) عبر OpenMM | سيتم تحديده لاحقاً | T 2075، 2090، K10، K20، K20X | نعم | قيد التطوير في الربع الرابع من عام 2012 |
| جرومكس | محاكاة الجزيئات الكيميائية الحيوية ذات التفاعلات الرابطة المعقدة | مذيب ضمني (5x)، مذيب صريح (2x) | 165 نانوثانية/يوم DHFR | T 2075، 2090، K10، K20، K20X | للعزاب فقط | متوفر الآن، الإصدار 4.6 في الربع الرابع من عام 2012 |
| هوم دي-أزرق | حزمة ديناميكيات الجسيمات مصممة خصيصًا لوحدات معالجة الرسومات (GPUs) | مصمم لوحدات معالجة الرسومات | 2x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن |
| لامبس | حزمة ديناميكيات الجزيئات الكلاسيكية | لينارد-جونز، مورس، باكنغهام، تشارم، جدولي، إس دي كيه ذو الحبيبات الخشنة، جاي-بيرن غير المتجانس، إعادة التربيع، تركيبات "هجينة" | 3–18x | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن |
| نامد | مصمم لمحاكاة الأنظمة الجزيئية الكبيرة بأداء عالٍ | قادر على استيعاب 100 مليون ذرة | 6.44 نانوثانية/يوم STMV 585x 2050 ثانية | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 2.9 |
| OpenMM | مكتبة وتطبيق لديناميكيات الجزيئات للحوسبة عالية الأداء باستخدام وحدات معالجة الرسومات | المذيب الضمني والصريح، والقوى المخصصة | ضمني: 127-213 نانوثانية/يوم؛ صريح: 18-55 نانوثانية/يوم DHFR | T 2075، 2090، K10، K20، K20X | نعم | متوفر الآن، الإصدار 4.1.1 |
- تعتمد التحسينات المتوقعة في السرعة بشكل كبير على إعدادات النظام. تمت مقارنة أداء وحدة معالجة الرسومات (GPU) مع مقبس وحدة المعالجة المركزية x86 متعدد النوى . تم قياس أداء وحدة معالجة الرسومات بناءً على الميزات التي تدعمها، وقد تكون المقارنة بين نواة النظام. لمزيد من التفاصيل حول الإعدادات المستخدمة، يُرجى زيارة موقع التطبيق. التحسينات في السرعة وفقًا لاختبارات Nvidia الداخلية أو وثائق مُطوّر البرامج المستقل (ISV).
- 1 2 Q= معالج رسومات Quadro ، T= معالج رسومات Tesla . تُوصي Nvidia بمعالجات الرسومات لهذا التطبيق. يُرجى مراجعة المطور أو مُورّد البرامج المستقل للحصول على معلومات الاعتماد.
انظر أيضاً
- مسرع الذكاء الاصطناعي
- وحدة معالجة الصوت
- قريب من المعدن
- معالج التعلم العميق (DLP)
- فاسترا 2
- لارابي (البنية الدقيقة)
- محرك الفيزياء
- تعليمة واحدة، خيوط متعددة – نموذج تنفيذ الحوسبة المتوازية
- معالج المتجهات – معالج حاسوبي يعمل على مصفوفات من عدة أرقام في آن واحد
مراجع
- ↑ فونغ، جيمس؛ تانغ، فيليكس؛ مان، ستيف (7-10 أكتوبر 2002). الواقع الوسيط باستخدام أجهزة رسومات الحاسوب للرؤية الحاسوبية (ملف PDF) . وقائع الندوة الدولية للحوسبة القابلة للارتداء 2002 (ISWC2002). سياتل، واشنطن، الولايات المتحدة الأمريكية. الصفحات 83-89 . مؤرشف من النسخة الأصلية (ملف PDF) في 2 أبريل 2012.
- ↑ أيمون، كريس؛ فونغ، جيمس؛ مان، ستيف (2003). "تقدير الحركة الإسقاطية غير المميزة القائم على فيديو Eye Tap بمساعدة التتبع الجيروسكوبي للواقع الافتراضي المُعتمد على الحوسبة القابلة للارتداء" . الحوسبة الشخصية والمنتشرة . 7 (5): 236-248 . doi : 10.1007/s00779-003-0239-6 . S2CID 25168728 .
- ↑ "معالجة إشارات رؤية الحاسوب على وحدات معالجة الرسومات"، وقائع المؤتمر الدولي لهندسة الصوت والكلام ومعالجة الإشارات (ICASSP 2004)، مؤرشف في 19 أغسطس 2011 على موقع Wayback Machine : مونتريال، كيبيك، كندا، 17-21 مايو 2004، الصفحات V-93 – V-96
- ↑ شيتي، د.م. (يوليو 2007). منهج متوازي للبيانات في البرمجة الجينية باستخدام أجهزة رسومات قابلة للبرمجة. مؤرشف في 8 أغسطس 2017 على موقع Wayback Machine . في وقائع المؤتمر السنوي التاسع حول الحوسبة الجينية والتطورية (ص 1566-1573). ACM.
- ↑ "استخدام بطاقات الرسومات المتعددة كحاسوب متوازي للأغراض العامة: تطبيقات في رؤية الحاسوب"، وقائع المؤتمر الدولي السابع عشر للتعرف على الأنماط (ICPR2004) مؤرشف في 18 يوليو 2011 في Wayback Machine ، كامبريدج، المملكة المتحدة، 23-26 أغسطس 2004، المجلد 1، الصفحات 805-808.
- ↑ هول، جيرالد (ديسمبر 1987). "الحياة" . الحوسبة المذهلة . 2 (12): 81-84 .
- ↑ كروجر، ينس؛ ويسترمان، روديجر (يوليو 2003). "مؤثرات الجبر الخطي لتنفيذ الخوارزميات العددية على وحدة معالجة الرسومات" . معاملات ACM في الرسومات . 22 (3): 908-916 . doi : 10.1145/882262.882363 . ISSN 0730-0301 .
- ↑ بولز، جيف؛ فارمر، إيان؛ غرينسبون، إيتان؛ شرودر، بيتر (يوليو 2003). "حلول المصفوفات المتفرقة على وحدة معالجة الرسومات: التدرجات المترافقة والشبكة المتعددة" . معاملات ACM في الرسومات . 22 (3): 917-924 . doi : 10.1145/882262.882364 . ISSN 0730-0301 .
- ↑ تارديتي، ديفيد؛ بوري، سيد؛ أوغلسبي، خوسيه (2006). "المُسرِّع: استخدام التوازي في البيانات لبرمجة وحدات معالجة الرسومات للاستخدامات العامة" (ملف PDF) . أخبار هندسة الحاسوب من ACM SIGARCH . 34 (5). doi : 10.1145/1168919.1168898 .
- ^ تشي شواي. بوير، مايكل. منغ، جيايوان. تارجان، د.؛ شيفر، جيريمي دبليو؛ سكادرون ، كيفن (2008). “دراسة أداء التطبيقات ذات الأغراض العامة على معالجات الرسومات باستخدام CUDA”. ي. الحوسبة المتوازية والموزعة . 68 (10): 1370-1380 . CiteSeerX 10.1.1.143.4849 . دوى : 10.1016/j.jpdc.2008.05.014 .
- ↑ جلاسر، ج.؛ نغوين، ت.د.؛ أندرسون، ج.أ.؛ لوي، ب.؛ سبيغا، ف.؛ ميلان، ج.أ.؛ مورس، د.س.؛ غلوتزر، س.س. (2015). "توسيع نطاق محاكاة ديناميكيات الجزيئات للأغراض العامة على وحدات معالجة الرسومات" . مجلة اتصالات فيزياء الحاسوب . 192 : 97-107 . arXiv : 1412.3387 . Bibcode : 2015CoPhC.192...97G . doi : 10.1016/j.cpc.2015.02.028 .
- 1 2 دو، بينغ؛ ويبر، ريك؛ لوشتشيك، بيوتر؛ توموف، ستانيمير؛ بيترسون، غريغوري؛ دونغارا، جاك (2012). "من CUDA إلى OpenCL: نحو حل قابل للنقل عالي الأداء لبرمجة وحدات معالجة الرسومات متعددة المنصات". الحوسبة المتوازية . 38 (8): 391-407 . Bibcode : 2012ParC...38..391D . CiteSeerX 10.1.1.193.7712 . doi : 10.1016/j.parco.2011.10.002 .
- ↑ هاريس، مارك (25 يناير 2017). "مقدمة أسهل إلى CUDA" . إنفيديا . تم الاسترجاع في 16 فبراير 2025 .
- ↑ "OpenCL يكتسب زخماً على حساب CUDA" . 28 فبراير 2012. مؤرشف من الأصل في 23 أبريل 2012. تم الاطلاع عليه في 10 أبريل 2012 ."باعتبارهما إطاري البرمجة الرئيسيين للحوسبة باستخدام وحدات معالجة الرسومات، فقد تنافست OpenCL وCUDA على جذب انتباه مجتمع المطورين خلال السنوات القليلة الماضية."
- ↑ فونغ، جيمس؛ مان، ستيف ؛ أيمون، كريس (6-11 نوفمبر 2005). "OpenVIDIA: رؤية حاسوبية متوازية باستخدام وحدة معالجة الرسومات" (ملف PDF) . وقائع المؤتمر الدولي السنوي الثالث عشر لجمعية آلات الحوسبة (ACM) حول الوسائط المتعددة . سنغافورة: جمعية آلات الحوسبة (نُشر في 6 نوفمبر 2005). الصفحات 849-852 . doi : 10.1145/1101149.1101334 . ISBN 1595930442أُرشف من النسخة الأصلية (PDF) بتاريخ 23 ديسمبر 2019. تم الاطلاع عليه بتاريخ 18 مارس 2025 .
- ↑ "المهجن" . المهجن . مؤرشف من الأصل في 17 أكتوبر 2017.
- ↑ "الصفحة الرئيسية" . ألتيميش . مؤرشف من الأصل في 17 أكتوبر 2017.
- ↑ "الجينات الهجينة والوراثة" . 27 يوليو 2017. مؤرشف من الأصل في 17 أكتوبر 2017.
- ↑ "تصحيح الأخطاء وتحليل الأداء باستخدام Hybridizer" . 5 يونيو 2017. مؤرشف من الأصل في 17 أكتوبر 2017.
- ↑ "مقدمة" . وحدة معالجة الرسومات Alea . مؤرشفة من الأصل في 25 ديسمبر 2016. تم الاطلاع عليها في 15 ديسمبر 2016 .
- ↑ "الصفحة الرئيسية" . كوانت أليا . مؤرشف من الأصل بتاريخ 12 ديسمبر 2016. تم الاطلاع عليه بتاريخ 15 ديسمبر 2016 .
- ↑ "استخدام لغة F# لبرمجة وحدات معالجة الرسومات" . مؤسسة برمجيات F#. مؤرشف من الأصل بتاريخ 18 ديسمبر 2016. تم الاطلاع عليه بتاريخ 15 ديسمبر 2016 .
- ↑ "ميزات وحدة معالجة الرسومات Alea" . كوانت أليا . مؤرشف من الأصل في 21 ديسمبر 2016. تم الاطلاع عليه في 15 ديسمبر 2016 .
- ↑ "إضافة دعم GPGPU إلى MATLAB" . 20 سبتمبر 2010. مؤرشف من الأصل في 27 سبتمبر 2010.
- 1 2 جوسيلي، مارك؛ كلوا، إستيبان؛ مونتينيغرو، أنسيلمو؛ كونسي، أورا؛ باجليوسا، باولو (2008). "محرك فيزيائي جديد مع توزيع تلقائي للعمليات بين وحدة المعالجة المركزية ووحدة معالجة الرسومات" . وقائع ندوة ACM SIGGRAPH لعام 2008 حول ألعاب الفيديو . الصفحات 149-156 . doi : 10.1145/1401843.1401871 . ISBN 978-1-60558-173-6.
- ↑ "واجهات برمجة تطبيقات Android 4.2 - مطورو Android" . developer.android.com . مؤرشف من الأصل بتاريخ 26 أغسطس 2013.
- ↑ "نقل البرامج النصية إلى OpenGL ES 3.1" .
- ↑ "نقل البرامج النصية إلى Vulkan" .
- ↑ ماكنتوش-سميث، سيمون (15 يوليو 2020). "مواكبة آخر التطورات مع كرونوس: أسئلة وأجوبة الخبراء حول OpenCL 3.0 وSYCL 2020" . مجموعة كرونوس . تاريخ الاسترجاع: 16 فبراير 2025 .
- ↑ "Nvidia-Kepler-GK110-Architecture-Whitepaper" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 21 فبراير 2015.
- ↑ " داخل باسكال: أحدث منصة حوسبة من إنفيديا " مؤرشفة في 7 مايو 2017 على موقع Wayback Machine
- ↑ " داخل فولتا: وحدة معالجة الرسومات الأكثر تطوراً في العالم لمراكز البيانات " مؤرشفة في 1 يناير 2020 على موقع Wayback Machine
- ↑ لي، جي؛ ميكيلوجياناكيس، جورج؛ كوك، براندون؛ كوراي، دولانيا؛ تشين، يونغ (2023). "تحليل استخدام الموارد في نظام الحوسبة عالية الأداء: دراسة حالة لنظام بيرلموتر التابع لمركز أبحاث الحوسبة عالية الأداء" . الحوسبة عالية الأداء . سلسلة محاضرات في علوم الحاسوب. المجلد 13948. الصفحات 297-316 . doi : 10.1007/978-3-031-32041-5_16 . ISBN 978-3-031-32040-8.
- ↑ "دليل أفضل الممارسات لـ OpenCL" (ملف PDF) . Nvidia . 2011.
- ↑ لام، تشيستر. "معالج AMD Zen 4 الجزء 1: الواجهة الأمامية ومحرك التنفيذ" . chipsandcheese.com .
- ↑ "دليل برمجة CUDA C++ — دليل برمجة CUDA C++" . docs.nvidia.com .
- ↑ لام، تشيستر. "معمارية الحوسبة CDNA 3 من AMD" . chipsandcheese.com .
- ↑ لام، تشيستر. "بطاقة AMD Radeon Instinct MI210: GCN لا تزال موجودة" . chipsandcheese.com .
- ↑ " https://www.tomshardware.com/reviews/geforce-radeon-power,2122.html ما مقدار الطاقة التي تحتاجها بطاقة الرسومات الخاصة بك؟"
- ↑ " https://images.nvidia.com/content/tesla/pdf/nvidia-tesla-p100-PCIe-datasheet.pdf مُسرِّع وحدة معالجة الرسومات Nvidia Tesla P100، مؤرشف بتاريخ 24 يوليو 2018 في أرشيف الإنترنت (Wayback Machine )"
- ↑ فار، مات، محرر. (2006). "الجزء الرابع: الحوسبة للأغراض العامة على وحدات معالجة الرسومات: مدخل تمهيدي" . جواهر وحدة معالجة الرسومات 2: تقنيات البرمجة للرسومات عالية الأداء والحوسبة للأغراض العامة ( الطبعة المطبوعة الثالثة). أبر سادل ريفر، نيوجيرسي. ميونيخ: أديسون-ويسلي. ISBN 978-0-321-33559-3.
- ↑ لارسن، إي. سكوت؛ ماكاليستر، ديفيد (10 نوفمبر 2001). "ضرب المصفوفات السريع باستخدام أجهزة الرسومات" . وقائع مؤتمر ACM/IEEE للحوسبة الفائقة لعام 2001. ACM. ص 55. doi : 10.1145/582034.582089 . ISBN 978-1-58113-293-9.
- ↑ كروجر، ينس؛ ويسترمان، روديجر (2005). "مؤثرات الجبر الخطي لتنفيذ الخوارزميات العددية على وحدة معالجة الرسومات" . دورات ACM SIGGRAPH 2005 - SIGGRAPH '05 . مطبعة ACM. ص 234. doi : 10.1145/1198555.1198795 .
- ↑ هاريس، مارك (2005). "ربط المفاهيم الحسابية بوحدات معالجة الرسومات" . دورات ACM SIGGRAPH 2005 - SIGGRAPH '05 . ص 50 وما يليها. doi : 10.1145/1198555.1198768 . ISBN 9781450378338. S2CID 8212423 .
- ↑ الدقة المزدوجة على وحدات معالجة الرسومات (وقائع مؤتمر ASIM 2005) مؤرشف في 21 أغسطس 2014 على موقع Wayback Machine : دومينيك غوديك، روبرت سترزودكا، وستيفان توريك. تسريع عمليات المحاكاة ذات الدقة المزدوجة (FEM) باستخدام وحدات معالجة الرسومات (GPUs). وقائع مؤتمر ASIM 2005 - الندوة الثامنة عشرة حول تقنيات المحاكاة، 2005.
- 1 2 "D. Göddeke، 2010. حلول سريعة ودقيقة للعناصر المحدودة متعددة الشبكات لمحاكاة PDE على مجموعات GPU. دكتوراه. أطروحة، جامعة التقنية دورتموند " . مؤرشفة من الأصلي في 16 ديسمبر 2014.
- ↑ أسانوفيتش، ك.؛ بوديك، ر.؛ ديميل، ج .؛ كيفيني، ت.؛ كويتزر، ك.؛ كوبياتوفيتش، ج.؛ مورغان، ن.؛ باترسون، د.؛ سين، ك.؛ واورزينك، ج.؛ ويسل، د.؛ يليتش، ك. (2009). "نظرة على مشهد الحوسبة المتوازية" . مجلة الاتصالات ACM . 52 (10): 56-67 . doi : 10.1145/1562764.1562783 .
- ↑ "الفصل 34. مصطلحات التحكم في تدفق وحدة معالجة الرسومات" . مطورو NVIDIA .
- ↑ رقائق المستقبل . "دليل إرشادي حول إزالة الفروع"، 2011
- ↑ ورقة بحثية حول الحوسبة العامة على وحدات معالجة الرسومات (GPGPU) مؤرشفة في 4 يناير 2007 على موقع Wayback Machine : جون د. أوينز، ديفيد لوبكي، ناغا جوفينداراجو، مارك هاريس، ينس كروجر، آرون إي. ليفون، وتيم بورسيل. "دراسة استقصائية للحوسبة العامة على أجهزة الرسومات". منتدى رسومات الحاسوب، المجلد 26، العدد 1، 2007، الصفحات 80-113.
- ↑ "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 .
- ↑ بليلوخ، جي إي (1989). "عمليات المسح الضوئي كعمليات متوازية أولية" (ملف PDF) . معاملات IEEE في الحوسبة . 38 (11): 1526-1538 . رمز Bibcode : 1989ITCmp..38.1526B . doi : 10.1109/12.42122 . مؤرشف من الأصل (ملف PDF) في 23 سبتمبر 2015. تم الاطلاع عليه في 16 ديسمبر 2014 .
- ↑ "الفصل 39. مجموع البادئات المتوازي (المسح) باستخدام CUDA" . مطورو NVIDIA .
- ↑ ميريل، دوان. تصميم الخوارزميات الموجهة نحو التخصيص مع تطبيق على الحوسبة باستخدام وحدة معالجة الرسومات . أطروحة دكتوراه، قسم علوم الحاسوب، جامعة فرجينيا. ديسمبر 2011.
- ↑ شون باكستر. وحدة معالجة الرسومات الحديثة. مؤرشف في 7 أكتوبر 2016 في آلة Wayback ، 2013.
- ↑ ليونغ، آلان، أوندريج لهوتاك، وغلام لاشاري. " التوازي التلقائي لوحدات معالجة الرسومات ". وقائع المؤتمر الدولي السابع حول مبادئ وممارسات البرمجة بلغة جافا. ACM، 2009.
- ↑ هنريكسن، ترولز، مارتن إلسمان، وكوزمين إي. أوانسيا. " تقسيم الحجم: منهج هجين لاستنتاج الحجم في لغة فوثارك ". وقائع ورشة عمل ACM SIGPLAN الثالثة حول الحوسبة الوظيفية عالية الأداء. ACM، 2014.
- ^ باسكاران، موثو مانيكاندان؛ بوندوغولا، عدي؛ كريشنامورثي، سريرام؛ رامانوجام، J.؛ رونتيف، أتاناس؛ سادايابان، ب. (2008). "إطار عمل مترجم لتحسين أعشاش الحلقة المتقاربة لـ gpgpus" . وقائع المؤتمر الدولي السنوي الثاني والعشرون للحوسبة الفائقة - ICS '08 . ص. 225. دوى : 10.1145/1375527.1375562 . رقم ISBN 9781605581583. S2CID 6137960 .
- ↑ "الفصل 30. المحاكاة والعرض في الوقت الحقيقي للسوائل ثلاثية الأبعاد" . مطورو NVIDIA .
- ↑ "م. هاريس، 2004. محاكاة ديناميكيات الموائع السريعة على وحدة معالجة الرسومات. في: جواهر وحدة معالجة الرسومات من إنفيديا، الفصل 38" . مطورو إنفيديا . مؤرشف من الأصل في 7 أكتوبر 2017.
- ↑ بلوك، بنيامين؛ فيرناو، بيتر؛ بريس، توبياس (2010). "محاكاة مونت كارلو متعددة الدوران مُسرّعة بواسطة وحدات معالجة رسومية متعددة لنموذج إيزينغ ثنائي الأبعاد". مجلة اتصالات الفيزياء الحاسوبية . 181 (9): 1549-1556 . arXiv : 1007.3726 . Bibcode : 2010CoPhC.181.1549B . doi : 10.1016/j.cpc.2010.05.005 . S2CID 14828005 .
- ↑ بويل، بيتر. "اتجاهات حسابية جديدة في نظرية قياس الشبكة" (ملف PDF) . مختبر لورانس بيركلي الوطني . تم الاطلاع عليه بتاريخ 16 فبراير 2025 .
- ↑ صن، س.؛ باور، س.؛ بيشيل، ر. (2011). "التجزئة ثلاثية الأبعاد الآلية للرئتين المصابتين بسرطان الرئة في بيانات التصوير المقطعي المحوسب باستخدام نهج جديد قوي لنموذج الشكل النشط" . معاملات IEEE في التصوير الطبي . 31 (2): 449-460 . doi : 10.1109/TMI.2011.2171357 . PMC 3657761. PMID 21997248 .
- ↑ خيمينيز، إدوارد س.، ولوريل ج. أور. " إعادة التفكير في دمج إعادة بناء التصوير المقطعي المحوسب والحوسبة باستخدام وحدات معالجة الرسومات العامة ". أنظمة وتطبيقات الإشعاع المخترق الرابع عشر. المجلد 8854. الجمعية الدولية للبصريات والضوئيات، 2013.
- ↑ سورنسن، تي إس؛ شيفتير، تي؛ نو، كي أو؛ هانسن، إم إس (2008). "تسريع تحويل فورييه السريع غير المتساوي المسافات على أجهزة الرسومات التجارية" . معاملات IEEE في التصوير الطبي . 27 (4): 538-547 . Bibcode : 2008ITMI...27..538S . doi : 10.1109/TMI.2007.909834 . PMID 18390350. S2CID 206747049 .
- ↑ غارسيا، فينسنت؛ ديبروف، إريك؛ بارلو، ميشيل (2008). "بحث سريع عن أقرب k جار باستخدام وحدة معالجة الرسومات". arXiv : 0804.1448 [ cs.CV ].
- ↑ كوكوتشوني، ماركو؛ غراسو، رافاييل؛ ريكسن، ميشيل (2011). "النمذجة السريعة لتطبيقات الحوسبة الضبابية عالية الأداء باستخدام برمجة وحدة معالجة الرسومات عالية المستوى لدعم العمليات البحرية" . ندوة IEEE لعام 2011 حول الذكاء الحسابي لتطبيقات الأمن والدفاع (CISDA) . الصفحات 17-23 . doi : 10.1109/CISDA.2011.5945947 . ISBN 978-1-4244-9939-7. S2CID 2089441 .
- ↑ ويلين، شون (10 مارس 2005). الصوت ووحدة معالجة الرسومات . CiteSeerX 10.1.1.114.365 .
- ↑ ويلسون، رون (3 سبتمبر 2009). "معالجة الإشارات الرقمية تُقدم لكم تجربة سير على سطح القمر بجودة عالية الوضوح" . EDN . تاريخ الاسترجاع: 3 سبتمبر 2009.
يُذكر أن لوري يستخدم وحدات معالجة الرسومات Nvidia Tesla (وحدات معالجة الرسومات) المبرمجة بلغة CUDA (بنية الحوسبة الموحدة للأجهزة) الخاصة بالشركة لتنفيذ الخوارزميات. وتدّعي Nvidia أن وحدات معالجة الرسومات أسرع بحوالي مئتي ضعف من حسابات وحدة المعالجة المركزية، مما يقلل وقت المعالجة إلى أقل من دقيقة واحدة لكل إطار.
{{cite news}}: CS1 maint: deprecated archiveal service ( link ) - ↑ ألرستام، إي.؛ سفينسون، تي.؛ أندرسون-إنجلز، إس. (2008). "الحوسبة المتوازية باستخدام وحدات معالجة الرسومات لمحاكاة مونت كارلو عالية السرعة لهجرة الفوتونات" ( ملف PDF) . مجلة البصريات الطبية الحيوية . 13 (6): 060504. رمز Bibcode : 2008JBO....13f0504A . doi : 10.1117/1.3041496 . PMID 19123645. مؤرشف (ملف PDF) من الأصل في 9 أغسطس 2011.
- 1 2 3 حسن، خوندكر س.؛ تشاتيرجي، أملان؛ رادهاكريشنان، سريدهار؛ أنطونيو، جون ك. (2014). "نموذج التنبؤ بالأداء وتحليله للمهام كثيفة الحساب على وحدات معالجة الرسومات" (ملف PDF) . هندسة نظم المعلومات المتقدمة (ملف PDF) . سلسلة محاضرات في علوم الحاسوب. المجلد 7908. الصفحات 612-617 . doi : 10.1007/978-3-662-44917-2_65 . ISBN 978-3-642-38708-1.
- ↑ "الفيزياء الحاسوبية باستخدام وحدات معالجة الرسومات: مرصد لوند" . www.astro.lu.se . مؤرشف من الأصل بتاريخ 12 يوليو 2010.
- ↑ "كيف يعمل برنامج GIMPS" . بحث الإنترنت الكبير عن أعداد ميرسين الأولية . تم الاطلاع عليه بتاريخ 6 مارس 2025 .
- ↑ شاتز، مايكل سي؛ ترابنيل، كول؛ ديلشر، آرثر إل؛ فارشني، أميتاب (2007). "محاذاة التسلسل عالية الإنتاجية باستخدام وحدات معالجة الرسومات" . بي إم سي بيوانفورماتيكس . 8 474. doi : 10.1186/1471-2105-8-474 . PMC 2222658. PMID 18070356 .
- ↑ أولينيك، م؛ ستيوير، م؛ غورلاتش، س؛ هايدر، د (15 نوفمبر 2014). "gCUP: التنبؤ السريع باستخدام مستقبلات HIV-1 المساعدة بتقنية GPU لتسلسل الجيل التالي" . المعلوماتية الحيوية . 30 (22): 3272-3273 . doi : 10.1093/bioinformatics/btu535 . PMID 25123901 .
- ↑ وانغ، غوهوي، وآخرون. " تسريع خوارزميات رؤية الحاسوب باستخدام إطار عمل OpenCL على وحدة معالجة الرسومات المحمولة - دراسة حالة ." المؤتمر الدولي IEEE لعام 2013 حول الصوتيات والكلام ومعالجة الإشارات. IEEE، 2013.
- ↑ بوير، فنسنت؛ الباز، ديدييه (2013). "التطورات الحديثة في الحوسبة باستخدام وحدات معالجة الرسومات في بحوث العمليات" . ندوة IEEE الدولية لعام 2013 حول المعالجة المتوازية والموزعة، وورش العمل ومنتدى الدكتوراه (ملف PDF) . الصفحات 1778-1787 . doi : 10.1109/IPDPSW.2013.45 . ISBN 978-0-7695-4979-8. S2CID 2774188 .
- ↑ بوكاتا، ليبور؛ سوشا، بريميسل؛ هانزاليك، زدينيك (2014). "حل مشكلة جدولة المشاريع ذات الموارد المحدودة باستخدام خوارزمية البحث المحظور المتوازية المصممة لمنصة CUDA". مجلة الحوسبة المتوازية والموزعة . 77 : 58-68 . arXiv : 1711.04556 . doi : 10.1016/j.jpdc.2014.11.005 . S2CID 206391585 .
- ^ بوميلت، زدينيك؛ دفورجاك، يناير؛ Šůcha، Přemysl؛ هانزاليك، زدينيك (2016). “نهج جديد لإعادة تعيين الممرضات على أساس خوارزمية متوازية”. المجلة الأوروبية للبحوث التشغيلية . 251 (2): 624-639 . دوى : 10.1016/j.ejor.2015.11.022 .
- ↑ CTU-IIG مؤرشف في 9 يناير 2016 في Wayback Machine جامعة التشيك التقنية في براغ، مجموعة المعلوماتية الصناعية (2015).
- ↑ NRRPGpu مؤرشف في 9 يناير 2016 في Wayback Machine جامعة التشيك التقنية في براغ، مجموعة المعلوماتية الصناعية (2015).
- ↑ ناجو مانشريل. "الفرز باستخدام وحدة معالجة الرسومات في PostgreSQL" (ملف PDF) . كلية علوم الحاسوب - جامعة كارنيجي ميلون . مؤرشف (ملف PDF) من الأصل في 2 أغسطس 2011.
- ↑ مانافسكي، سفيتلين أ. " وحدة معالجة رسومية متوافقة مع CUDA كمسرّع أجهزة فعال لتشفير AES. مؤرشف في 7 مايو 2019 على Wayback Machine ." المؤتمر الدولي IEEE لمعالجة الإشارات والاتصالات لعام 2007. IEEE، 2007.
- ↑ هاريسون، أوين؛ والدرون، جون (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.
- ↑ خوارزمية التشفير المتقدمة (AES) وأنماط التشغيل على وحدات معالجة الرسومات المتوافقة مع معيار SM4.0. مؤرشف في 21 أغسطس 2010 على موقع Wayback Machine. أوين هاريسون، جون والدرون، التشفير العملي بالمفتاح المتناظر على أجهزة الرسومات الحديثة. ضمن وقائع مؤتمر USENIX Security 2008.
- ↑ هاريسون، أوين؛ والدرون، جون (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.
- ↑ "مشاكل التيرافلوب: قوة وحدات معالجة الرسومات قد تهدد نظام أمان كلمات المرور العالمي" . معهد جورجيا للتكنولوجيا للأبحاث . مؤرشف من الأصل في 30 ديسمبر 2010. تم الاطلاع عليه في 7 نوفمبر 2010 .
- ↑ "هل تريد ردع المتسللين؟ اجعل كلمة مرورك أطول" . أخبار إن بي سي . ١٩ أغسطس ٢٠١٠. مؤرشف من الأصل في ١١ يوليو ٢٠١٣. تم الاطلاع عليه في ٧ نوفمبر ٢٠١٠ .
- ↑ ليرنر، لاري (9 أبريل 2009). "وجهة نظر: وحدات معالجة الرسومات بكميات كبيرة، وليس وحدات المعالجة المركزية، لمحاكاة تصميم الدوائر الإلكترونية" . مجلة EE Times . تم الاطلاع عليه بتاريخ 14 سبتمبر 2023 .
- ↑ "W2500 ADS Transient Convolution GT" .
يُسرّع عمليات محاكاة سلامة الإشارة على محطات العمل التي تحتوي على وحدات معالجة الرسومات (GPU) القائمة على بنية Nvidia Compute Unified Device Architecture (CUDA).
- ↑ GrAVity: محرك مكافحة فيروسات متوازي للغاية. مؤرشف بتاريخ 27 يوليو 2010 في Wayback Machine . جورجوس فاسيلياديس وسوتيريس إيوانيديس، GrAVity: محرك مكافحة فيروسات متوازي للغاية. ضمن وقائع مؤتمر RAID 2010.
- ↑ "تستخدم شركة كاسبرسكي لاب تقنيات إنفيديا لتعزيز الحماية" . كاسبرسكي لاب . 14 ديسمبر 2009. مؤرشف من الأصل في 19 يونيو 2010.
خلال الاختبارات الداخلية، أظهر معالج Tesla S1070 زيادة قدرها 360 ضعفًا في سرعة خوارزمية تحديد التشابه مقارنةً بمعالج Intel Core 2 Duo المركزي الشهير الذي يعمل بسرعة 2.6 جيجاهرتز.
- ↑ غنورت: كشف اختراقات الشبكة عالي الأداء باستخدام معالجات الرسومات. مؤرشف في 9 أبريل 2011 على موقع Wayback Machine . جورجوس فاسيلياديس وآخرون، غنورت: كشف اختراقات الشبكة عالي الأداء باستخدام معالجات الرسومات. ضمن وقائع مؤتمر RAID 2008.
- ↑ مطابقة التعبيرات النمطية على أجهزة الرسومات لكشف الاختراقات. مؤرشف في 27 يوليو 2010 على موقع Wayback Machine . جورجوس فاسيلياديس وآخرون، مطابقة التعبيرات النمطية على أجهزة الرسومات لكشف الاختراقات. ضمن وقائع مؤتمر RAID 2009.
- ↑ "التطبيقات المُسرّعة بواسطة وحدة معالجة الرسومات" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 25 مارس 2013. تم الاطلاع عليه بتاريخ 12 سبتمبر 2013 .
- ↑ لانغدون، ويليام ب؛ لام، برايان يي هونغ؛ بيتكي، جوستينا؛ هارمان، مارك (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 .
- برودتكورب، أندريه ر.؛ هاجن، تروند ر.؛ سيترا، مارتن ل. (1 يناير 2013). "استراتيجيات برمجة وحدة معالجة الرسومات (GPU) واتجاهات الحوسبة باستخدام وحدة معالجة الرسومات" . مجلة الحوسبة المتوازية والموزعة . الخوارزميات الاستكشافية على وحدات معالجة الرسومات. 73 (1): 4-13 . Bibcode : 2013JPDC...73....4B . doi : 10.1016/j.jpdc.2012.04.003 . hdl : 10852/40283 . ISSN 0743-7315 .
- GPGPU
- أجهزة الرسومات
- بطاقات الرسومات
- معالجة التعليمات
- الحوسبة المتوازية
- تطوير ألعاب الفيديو
