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

الحوسبة للأغراض العامة على وحدات معالجة الرسوميات (بالإنجليزية: General-purpose computing on graphics processing units، واختصارًا: GPGPU، أو GPGP) هي استخدام وحدة معالجة الرسوميات (جي بي يو)، التي تعالج عمليات الحوسبة لرسوميات الحاسوب فقط، وذلك لإجراء الحوسبة في التطبيقات التي يُعامَل معها تقليديًا بواسطة وحدة المعالجة المركزية (سي بي يو).[1][2][3][4] يؤدي استخدام بطاقات رسوميات متعددة في حاسوب واحد، أو عدد كبير من رُقاقات الرسوميات، إلى زيادة توازي الطبيعة المتوازية أصلًا بمعالجة الرسوميات.[5] بالإضافة إلى ذلك، يوفر إطار عمل واحد بين وحدة معالجة الرسوميات ووحدة المعالجة المركزية مزايا لا تقدمها وحدات المعالجة المركزية المتعددة بمفردها، وذلك نظرًا إلى اختصاص كل رقاقة.[6]

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

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

لمحة تاريخيةعدل

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

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

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

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

المراجععدل

  1. ^ Fung, et al., "Mediated Reality Using Computer Graphics Hardware for Computer Vision" نسخة محفوظة 2 April 2012 على موقع واي باك مشين., Proceedings of the International Symposium on Wearable Computing 2002 (ISWC2002), Seattle, Washington, USA, 7–10 October 2002, pp. 83–89.
  2. ^ An EyeTap video-based featureless projective motion estimation assisted by gyroscopic tracking for wearable computer mediated reality, ACM Personal and Ubiquitous Computing published by Springer Verlag, Vol.7, Iss. 3, 2003. نسخة محفوظة 13 فبراير 2020 على موقع واي باك مشين.
  3. ^ "Computer Vision Signal Processing on Graphics Processing Units", Proceedings of the IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004) نسخة محفوظة 19 August 2011 على موقع واي باك مشين.: Montreal, Quebec, Canada, 17–21 May 2004, pp. V-93 – V-96
  4. ^ Chitty, D. M. (2007, July). A data parallel approach to genetic programming using programmable graphics hardware نسخة محفوظة 8 August 2017 على موقع واي باك مشين.. In Proceedings of the 9th annual conference on Genetic and evolutionary computation (pp. 1566-1573). ACM.
  5. ^ "Using Multiple Graphics Cards as a General Purpose Parallel Computer: Applications to Computer Vision", Proceedings of the 17th International Conference on Pattern Recognition (ICPR2004) نسخة محفوظة 18 July 2011 على موقع واي باك مشين., Cambridge, United Kingdom, 23–26 August 2004, volume 1, pages 805–808.
  6. ^ Mittal, S.; Vetter, J. (2015). "A Survey of CPU-GPU Heterogeneous Computing Techniques". ACM Computing Surveys. 47 (4): 1–35. doi:10.1145/2788396. مؤرشف من الأصل في 13 فبراير 2019. الوسيط |CitationClass= تم تجاهله (مساعدة)
  7. ^ Hull, Gerald (December 1987). "LIFE". Amazing Computing. 2 (12): 81–84. مؤرشف من الأصل في 3 يناير 2015. الوسيط |CitationClass= تم تجاهله (مساعدة)
  8. ^ Du, Peng; Weber, Rick; Luszczek, Piotr; Tomov, Stanimire; Peterson, Gregory; Dongarra, Jack (2012). "From CUDA to OpenCL: Towards a performance-portable solution for multi-platform GPU programming". Parallel Computing. 38 (8): 391–407. CiteSeerX = 10.1.1.193.7712 10.1.1.193.7712. doi:10.1016/j.parco.2011.10.002. الوسيط |CitationClass= تم تجاهله (مساعدة)
  9. ^ Tarditi, David; Puri, Sidd; Oglesby, Jose (2006). "Accelerator: using data parallelism to program GPUs for general-purpose uses" (PDF). ACM SIGARCH Computer Architecture News. 34 (5). مؤرشف من الأصل (PDF) في 15 أغسطس 2017. الوسيط |CitationClass= تم تجاهله (مساعدة)
  10. ^ Che, Shuai; Boyer, Michael; Meng, Jiayuan; Tarjan, D.; Sheaffer, Jeremy W.; Skadron, Kevin (2008). "A performance study of general-purpose applications on graphics processors using CUDA". J. Parallel and Distributed Computing. 68 (10): 1370–1380. CiteSeerX = 10.1.1.143.4849 10.1.1.143.4849. doi:10.1016/j.jpdc.2008.05.014. الوسيط |CitationClass= تم تجاهله (مساعدة)