HSA للمطورين: الحوسبة غير المتجانسة للجماهير

نشرت: 2022-03-11

ما هو الشيء المشترك بين صانعي الرقائق مثل AMD و ARM و Samsung و MediaTek و Qualcomm و Texas Instruments؟ حسنًا ، بصرف النظر عن أوجه التشابه الواضحة بين هذه الشركات العملاقة في صناعة الرقائق ، فقد صادف أنهم مؤسسو HSA Foundation. ما هو هائل سعيد أنعم ، ولماذا يحتاج إلى مؤسسة مدعومة من قبل الشركات ذات الوزن الثقيل في الصناعة؟

سأحاول في هذا المنشور أن أشرح لماذا يمكن أن يكون HSA صفقة كبيرة في المستقبل القريب ، لذلك سأبدأ بالأساسيات: ما هو HSA ولماذا يجب أن تهتم ؟

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

نفس الحمل ، بنيات مختلفة: تتفوق وحدات المعالجة المركزية ووحدات معالجة الرسومات في مهام مختلفة. ماذا يحدث عندما يبدأون في مشاركة الحمل دون تدخل المطور؟

نفس الحمل ، بنيات مختلفة: تتفوق وحدات المعالجة المركزية ووحدات معالجة الرسومات في مهام مختلفة. ماذا يحدث عندما يبدأون في مشاركة الحمل دون تدخل المطور؟
سقسقة

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

أوه لا! إليك معيار آخر سخيف يجب على مطوري البرامج تنفيذه

نعم و لا.

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

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

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

الكثير من الأسماء الكبيرة تدعم HSA. ومع ذلك ، فإن الشركات ذات الوزن الثقيل في الصناعة Intel و Nvidia ليست مدرجة في القائمة.

الكثير من الأسماء الكبيرة تدعم HSA. ومع ذلك ، فإن الشركات ذات الوزن الثقيل في الصناعة Intel و Nvidia ليست مدرجة في القائمة.
سقسقة

لتحقيق ذلك ، يجب أن تتمتع HSA بدعم من العديد من صانعي الرقائق وبائعي الأجهزة. في حين أن قائمة مؤيدي HSA مثيرة للإعجاب ، إلا أن Intel غائبة بشكل واضح عن هذا الشخص الحقيقي في صناعة الرقائق. بالنظر إلى حصة إنتل في السوق في كل من أسواق معالجات سطح المكتب والخوادم ، فهذه مشكلة كبيرة . اسم آخر لن تجده في القائمة هو Nvidia ، والذي يركز على CUDA ، وهو حاليًا الرائد في سوق حوسبة GPU.

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

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

تطوير هائل سعيد أنعم ومشاكل التسنين ومخاوف التبني

كما قلت في المقدمة ، HSA ليس مفهومًا جديدًا تمامًا. تم تصورها في الأصل من قبل Advanced Micro Devices (AMD) ، والتي كانت لها مصلحة كبيرة في إخراجها من الأرض. قبل عقد من الزمن ، اشترت AMD متخصصي الرسومات ATI ، ومنذ ذلك الحين تحاول الشركة الاستفادة من وصولها إلى أحدث تقنيات وحدة معالجة الرسومات لزيادة المبيعات الإجمالية.

في ظاهر الأمر ، كانت الفكرة بسيطة بما يكفي: لن تستمر AMD في تطوير وتصنيع وحدات معالجة الرسومات المنفصلة المتطورة فحسب ، بل ستدمج أيضًا تقنية GPU الخاصة بـ ATI في معالجاتها. أطلق قسم التسويق في AMD على فكرة "Fusion" ، وتمت الإشارة إلى HSA باسم Fusion System Architecture (FSA). يبدو رائعا ، أليس كذلك؟ بدا الحصول على معالج x86 لائق برسومات متكاملة جيدة فكرة جيدة ، وكان كذلك.

لسوء الحظ ، واجهت AMD عددًا من المشكلات على طول الطريق ؛ سأفرد القليل منهم:

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

تآمرت هذه العوامل ، وعدد من العوامل الأخرى ، لتقويض ميزة AMD ومنع تبني منتجاتها وتقنياتها في السوق. بدأت AMD في طرح المعالجات بالجيل الجديد من رسومات Radeon المدمجة في منتصف عام 2011 ، وبدأت تسميها وحدات المعالجة السريعة (APUs) بدلاً من وحدات المعالجة المركزية (CPU).

بغض النظر عن التسويق ، كان الجيل الأول من وحدات APU (التي تحمل الاسم الرمزي Llano) من AMD فاشلاً. تأخرت الرقائق ولم تستطع مواكبة عروض إنتل. لم يتم تضمين ميزات HSA الجادة أيضًا ، ولكن بدأت AMD في إضافتها في نظامها الأساسي لعام 2012 (Trinity ، والذي كان في الأساس Llano تم القيام به بشكل صحيح). جاءت الخطوة التالية في عام 2014 ، مع تقديم Kaveri APUs ، والتي دعمت إدارة الذاكرة غير المتجانسة (تشترك وحدة معالجة الرسومات (GPU) IOMMU ووحدة المعالجة المركزية (MMU) في نفس مساحة العنوان). جلب Kaveri أيضًا مزيدًا من التكامل المعماري ، مما يتيح ذاكرة متماسكة بين وحدة المعالجة المركزية ووحدة معالجة الرسومات (تسميها AMD hUMA ، والتي تعني الوصول إلى الذاكرة الموحدة غير المتجانسة). أضاف تحديث Carizzo اللاحق المزيد من ميزات HSA ، مما مكّن المعالج من تبديل مهام الحوسبة حسب السياق على وحدة معالجة الرسومات والقيام ببعض الحيل الأخرى.

تعد بنية Zen CPU القادمة ووحدات APU المبنية فوقها بتقديم المزيد ، إذا وعندما يتم عرضها في السوق.

إذا ما هي المشكلة؟

لم تكن AMD صانع الرقائق الوحيد الذي أدرك إمكانات وحدات معالجة الرسومات على القالب. بدأت إنتل في إضافتها إلى وحدات المعالجة المركزية (CPU) الخاصة بها أيضًا ، كما فعل صانعو شرائح ARM ، لذلك يتم استخدام وحدات معالجة الرسومات المدمجة حاليًا في كل شريحة هاتف ذكي تقريبًا ، بالإضافة إلى الغالبية العظمى من أجهزة الكمبيوتر / أجهزة Mac. في غضون ذلك ، تآكل موقع AMD في سوق وحدات المعالجة المركزية. جعل تراجع الحصة السوقية منصات AMD أقل جاذبية للمطورين والشركات وحتى المستهلكين. ببساطة لا يوجد العديد من أجهزة الكمبيوتر المستندة إلى AMD في السوق ، ولا تستخدم Apple معالجات AMD على الإطلاق (على الرغم من أنها تستخدم رسومات AMD ، ويرجع ذلك أساسًا إلى توافق OpenCL).

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

ماذا عن بعض HSA للهواتف الذكية والأجهزة اللوحية؟

لكن انتظر. ماذا عن منصات المحمول؟ ألا تستطيع AMD طرح حلول مماثلة لشرائح الهواتف الذكية والأجهزة اللوحية؟ حسنًا ، لا ، ليس حقًا.

كما ترى ، بعد بضع سنوات من الاستحواذ على ATI ، وجدت AMD نفسها في وضع مالي صعب ، تفاقمت بسبب الأزمة الاقتصادية ، لذلك قررت بيع قسم Imageon mobile GPU الخاص بها إلى Qualcomm. أعادت Qualcomm تسمية المنتجات Adreno (anagram of Radeon) ، وأصبحت اللاعب المهيمن في سوق معالجات الهواتف الذكية ، باستخدام وحدات معالجة الرسومات (GPU) المعاد رسمها حديثًا.

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

اعتاد HSA أن يكون مرتبطًا فقط بـ AMD ومعالجات x86 الخاصة به ، ولكن لم يعد هذا هو الحال. في الواقع ، إذا بدأ جميع أعضاء مؤسسة HSA في شحن معالجات الهواتف الذكية ARM التي تدعم HSA ، فإنهم سيفوقون معالجات AMD x86 عدة أضعاف ، من حيث الإيرادات والوحدات المشحونة. إذن ماذا يحدث إذا فعلوا؟ ماذا يعني ذلك بالنسبة للصناعة والمطورين؟

حسنًا ، بالنسبة للمبتدئين ، تعتمد معالجات الهواتف الذكية بالفعل على الحوسبة غير المتجانسة ، نوعًا ما. عادةً ما تشير الحوسبة غير المتجانسة إلى مفهوم استخدام معماريات مختلفة في شريحة واحدة ، وبالنظر إلى جميع المكونات الموجودة في SoCs المتكاملة للغاية اليوم ، يمكن أن يكون هذا تعريفًا واسعًا للغاية. نتيجة لذلك ، يمكن اعتبار كل SoC تقريبًا منصة حوسبة غير متجانسة ، اعتمادًا على معايير الفرد. في بعض الأحيان ، يشير الأشخاص حتى إلى معالجات مختلفة بناءً على نفس مجموعة التعليمات كمنصة غير متجانسة (على سبيل المثال ، رقائق الهاتف المحمول مع نوى ARM Cortex-A57 و A53 ​​، وكلاهما يعتمد على مجموعة تعليمات ARMv8 64 بت).

يتفق العديد من المراقبين على أن معظم المعالجات القائمة على ARM يمكن اعتبارها الآن منصات غير متجانسة ، بما في ذلك شرائح Apple A-series و Samsung Exynos SoCs والمعالجات المماثلة من البائعين الآخرين ، وبالتحديد المشغلين الكبار مثل Qualcomm و MediaTek.

ولكن لماذا يحتاج أي شخص HSA على معالجات الهواتف الذكية؟ أليس بيت القصيد من استخدام وحدات معالجة الرسومات للحوسبة العامة للتعامل مع أعباء العمل الاحترافية ، وليس Angry Birds و Uber؟

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

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

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

إليك ما يمكن أن تفعله HSA لمعالجات الهواتف الذكية ، من الناحية النظرية على الأقل:

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

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

كيف يعمل HSA على أي حال؟

لقد أوجزت بالفعل الأساسيات في المقدمة ، وأنا متردد في الخوض في الكثير من التفاصيل لسببين: لا أحد يحب الروايات المنشورة على مدونة تقنية ، ويمكن أن تختلف تطبيقات HSA.

لذلك ، سأحاول أن أوجز المفهوم ببضع مئات من الكلمات.

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

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

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

في نظام HSA ، سيصنف التطبيق المهمة في قائمة الانتظار ، وستتولى وحدة المعالجة المركزية HSA ، وتسليمها إلى وحدة معالجة الرسومات ، واستعادتها ، ونقلها إلى التطبيق. منجز.

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

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

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

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

ما فائدة الحوسبة غير المتجانسة؟

الجواب البسيط؟ يجب أن تكون الحوسبة غير المتجانسة ، أو HSA كما لو كانت تطبيقاتها ، اختيارًا جيدًا لجميع مهام الحوسبة الأكثر ملاءمة لوحدات معالجة الرسومات من وحدات المعالجة المركزية (CPU). ولكن ماذا يعني ذلك بالضبط ، ما هي وحدات معالجة الرسومات الجيدة على أي حال؟

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

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

هذا ما يبدو عليه معالج AMD في الوقت الحاضر. ما زلنا نسميها معالجات ، لكن وحدة معالجة الرسومات (GPU) تستحوذ على قدر أكبر من السيليكون مقارنة بوحدة المعالجة المركزية (CPU).

هذا ما يبدو عليه معالج AMD في الوقت الحاضر. ما زلنا نسميها معالجات ، لكن وحدة معالجة الرسومات (GPU) تستحوذ على قدر أكبر من السيليكون مقارنة بوحدة المعالجة المركزية (CPU).
سقسقة

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

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

ولكن إذا كانت وحدات معالجة الرسومات جيدة جدًا في ذلك ، فلماذا لم نبدأ في استخدامها كأجهزة حوسبة عامة منذ سنوات؟ حسنًا ، لقد حاولت الصناعة ، لكن التقدم كان بطيئًا ومقتصرًا على مجالات معينة. كان يطلق على هذا المفهوم في الأصل اسم الحوسبة العامة على وحدات معالجة الرسومات (GPGPU). في الأيام الخوالي ، كانت الإمكانات محدودة ، لكن مفهوم GPGPU كان سليماً وتم تبنيه وتوحيده لاحقًا في شكل CUDA من Nvidia و OpenCL التابع لشركة Apple / Khronos Group.

أحدث كل من CUDA و OpenCL فرقًا كبيرًا حيث سمحا للمبرمجين باستخدام وحدات معالجة الرسومات بطريقة مختلفة وأكثر فاعلية. كانت ، مع ذلك ، البائعين محددة. يمكنك استخدام CUDA على أجهزة Nvidia ، بينما تم حجز OpenCL لأجهزة ATI (واحتضنته Apple). تم إصدار DirectCompute API من Microsoft مع DirectX 11 ، وسمح بنهج محدود وغير مألوف للبائع (ولكنه كان مقصورًا على Windows).

دعنا نلخص من خلال سرد بعض التطبيقات لحوسبة GPU:

  • الحوسبة التقليدية عالية الأداء (HPC) في شكل مجموعات HPC ، وأجهزة الكمبيوتر العملاقة ، ومجموعات GPU لأحمال الحوسبة ، وحوسبة GRID ، وموازنة الحمل.

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

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

  • معالجة الصوت ، باستخدام GPU بدلاً من DSPs ومعالجة الكلام ومعالجة الإشارات التناظرية والمزيد.

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

  • الحوسبة العلمية ، بما في ذلك أبحاث المناخ والفيزياء الفلكية وميكانيكا الكم والنمذجة الجزيئية وما إلى ذلك.

  • مهام حسابية أخرى مكثفة ، مثل التشفير / فك التشفير. سواء أكنت بحاجة إلى "استخراج" العملات المشفرة أو تشفير بياناتك السرية أو فك تشفيرها أو كسر كلمات المرور أو اكتشاف الفيروسات ، يمكن أن تساعدك وحدة معالجة الرسومات.

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

لا توجد قائمة شاملة ، على أي حال ، لأنه يمكن استخدام حوسبة GPU لجميع أنواع الأشياء ، بدءًا من التمويل والتصوير الطبي ، إلى أحمال قاعدة البيانات والإحصاءات. أنت مقيد بخيالك. ما يسمى برؤية الكمبيوتر هو تطبيق آخر قادم. تعد وحدة معالجة الرسومات القادرة أمرًا جيدًا إذا كنت بحاجة إلى "تعليم" طائرة بدون طيار أو سيارة بدون سائق لتجنب الأشجار والمشاة والمركبات الأخرى.

لا تتردد في إدراج نكتة Lindsay Lohan المفضلة لديك هنا.

التطوير لـ HSA: حان الوقت لبعض الأخبار السيئة

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

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

لسوء الحظ ، تشتمل مجموعة حلول HSA على أكثر من مجموعة قياسية من أدوات البرامج. الحوسبة غير المتجانسة هي تكافل بين البرامج والأجهزة.

لسوء الحظ ، تشتمل مجموعة حلول HSA على أكثر من مجموعة قياسية من أدوات البرامج. الحوسبة غير المتجانسة هي تكافل بين البرامج والأجهزة.
سقسقة

هذا لا يعني أن المطورين لا يعملون في المشاريع المتعلقة بـ HSA ، ولكن لا يوجد الكثير من الاهتمام ، أو التقدم ، في هذا الشأن. فيما يلي بعض الموارد التي يجب عليك التحقق منها إذا كنت تريد تجربة HSA:

  • من الواضح أن HSA Foundation @ GitHub هي المكان المناسب للموارد المتعلقة بـ HSA. تنشر مؤسسة HSA وتحتفظ بعدد من المشاريع على GitHub ، بما في ذلك أدوات تصحيح الأخطاء والمترجمات وأدوات HSAIL الحيوية وغير ذلك الكثير. تم تصميم معظم الموارد لأجهزة AMD.

  • تتيح لك موارد HSAIL المقدمة من AMD الحصول على فكرة أفضل عن مواصفات HSAIL. HSAIL تعني HSA Intermediate Language ، وهي في الأساس الأداة الرئيسية لكتاب المترجمين الخلفيين وكتاب المكتبات الذين يرغبون في استهداف أجهزة HSA.

  • يتضمن الدليل المرجعي لمبرمج HSA (PDF) مواصفات HSAIL الكاملة ، بالإضافة إلى شرح شامل للغة الوسيطة.

  • موارد مؤسسة HSA محدودة في الوقت الحالي وبرنامج المطورين للمؤسسة "قريبًا" ، ولكن هناك عددًا من أدوات المطورين الرسمية التي يجب التحقق منها. والأهم من ذلك ، أنها ستعطيك فكرة جيدة عن المكدس الذي ستحتاجه للبدء.

  • تتميز مدونة AMD الرسمية ببعض محتويات HSA المفيدة أيضًا.

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

مستقبل حوسبة HSA و GPU

عندما نغطي تكنولوجيا ناشئة ، فإننا نواجه نفس المعضلة: هل يجب أن نطلب من القراء قضاء الوقت والموارد في ذلك ، أو الابتعاد ، واتخاذ نهج الانتظار والترقب؟

لقد أوضحت بالفعل أنني متحيز إلى حد ما لأنني أحب المفهوم العام لحوسبة GPU ، لكن معظم المطورين يمكنهم الاستغناء عنها ، في الوقت الحالي. حتى لو تم إقلاعها ، فإن HSA سيكون لها جاذبية محدودة ولن تهم معظم المطورين. ومع ذلك ، قد يكون مهمًا في المستقبل. لسوء الحظ بالنسبة لشركة AMD ، من غير المحتمل أن تكون مغيرًا لقواعد اللعبة في سوق المعالجات x86 ، ولكن قد تكون أكثر أهمية في معالجات الأجهزة المحمولة القائمة على ARM. ربما كانت فكرة AMD ، لكن شركات مثل Qualcomm و MediaTek في وضع أفضل لتقديم الأجهزة التي تدعم HSA لمئات الملايين من المستخدمين.

يجب أن يكون تعايشًا مثاليًا بين البرامج والأجهزة. إذا أصيب صانعو الرقائق المتنقلون بالجنون بشأن HSA ، فسيكون ذلك أمرًا مهمًا. جيل جديد من رقائق HSA من شأنه أن يطمس الخط الفاصل بين أنوية وحدة المعالجة المركزية ووحدة معالجة الرسومات. سيشتركون في نفس ناقل الذاكرة على قدم المساواة ، وأعتقد أن الشركات ستبدأ في تسويقها بشكل مختلف. على سبيل المثال ، تقوم AMD بالفعل بتسويق وحدات APU الخاصة بها على أنها "أجهزة حوسبة" تتألف من "مراكز حوسبة" مختلفة (وحدات المعالجة المركزية ووحدات معالجة الرسومات).

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

تمكن HSA البنى المختلفة من سحب وزنها ومعالجة الأحمال المختلفة بشكل كبير بكفاءة أكبر.

تمكن HSA البنى المختلفة من سحب وزنها ومعالجة الأحمال المختلفة بشكل كبير بكفاءة أكبر.
سقسقة

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

ضع في اعتبارك أن HSA ليست الطريقة الوحيدة للاستفادة من وحدات معالجة الرسومات لإجراء الحساب.

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

من ناحية أخرى ، انسحبت Nvidia من سوق الرسومات المتكاملة منذ سنوات (عندما توقفت عن إنتاج شرائح الكمبيوتر الشخصي) ، لكنها جربت حظها في سوق معالجات ARM من خلال معالجات Tegra-series الخاصة بها. لم يحققوا نجاحًا كبيرًا ، لكنهم ما زالوا يستخدمون في بعض الأجهزة ، وتركز Nvidia جهودها على الأنظمة المضمنة ، أي السيارات. في هذا الإعداد ، تقوم وحدة معالجة الرسومات المدمجة بسحب ثقلها حيث يمكن استخدامها لاكتشاف الاصطدام والتنقل الداخلي ورسم الخرائط ثلاثية الأبعاد وما إلى ذلك. هل تتذكر مشروع Google Tango ؟ كانت بعض الأجهزة تعتمد على رقائق Tegra ، مما يسمح باستشعار العمق وبعض الحيل الأخرى الأنيقة. على الجانب الآخر من الطيف ، يغطي خط إنتاج Nvidia Tesla سوق حوسبة GPU المتطورة ، ويضمن هيمنة Nvidia في هذا المكان لسنوات قادمة.

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

قد يستغرق الأمر بضع سنوات ، لكنني على ثقة من أن وحدات معالجة الرسومات سترتفع في النهاية لتحتل مكانها الصحيح في مجال الحوسبة العامة ، حتى في شرائح الأجهزة المحمولة. التكنولوجيا جاهزة تقريبًا ، وسيقوم الاقتصاد بالباقي. كيف؟ حسنًا ، هذا مثال بسيط. يتميز الجيل الحالي من معالجات Atom من Intel بوجود 12 إلى 16 وحدة تنفيذ GPU (EUs) ، بينما كان لدى أسلافهم أربعة وحدات EU فقط ، استنادًا إلى بنية أقدم. نظرًا لأن وحدات معالجة الرسومات المدمجة أصبحت أكبر وأكثر قوة ، ومع زيادة مساحة القالب ، لن يكون أمام صانعي الشرائح خيار سوى استخدامها لتحسين الأداء والكفاءة بشكل عام. إن عدم القيام بذلك سيكون ضارًا للهوامش والمساهمين.

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

أعتقد أننا يمكن أن نتفق جميعًا على أن هذا سيكون صفقة ضخمة ، خاصة على الأجهزة المحمولة الرخيصة.

الموضوعات ذات الصلة: نظرة عامة موجزة عن Vulkan API