هذه عبارة عن مجموعة من المعايير الدقيقة لوحدة معالجة الرسومات. تم تصميم كل اختبار لاختبار سيناريو معين أو آلية أجهزة معينة. تم استخدام بعض المعايير لإنتاج بيانات لهذه الأوراق:
"تقدير الأداء التحليلي أثناء إنشاء التعليمات البرمجية على وحدات معالجة الرسوميات الحديثة"
"هندسة الأداء لنواة مضاعفة المصفوفة الطويلة والنحيفة الحقيقية والمعقدة على وحدات معالجة الرسومات"
المعايير التي تسمى gpu-<benchmarkname>
قابلة للتعديل! في حين أن هدف Makefile الافتراضي يبني cuda القابل للتنفيذ cuda-<benchmarkname>
، فإن الهدف make hip-<benchmarkname>
يستخدم أداة hipify-Perl لإنشاء ملف main.hip
من ملف main.cu
، ويبنيه باستخدام مترجم hip. . تتم كتابة ملفات CUDA الرئيسية بحيث تعمل أداة hipify دون أي تدخل إضافي.
قم أيضًا بإلقاء نظرة على وظائف قياسات وحدة معالجة الرسومات، والتي توفر طريقة موجزة لقياس مقاييس عداد أداء الأجهزة لإطلاق kernel داخل البرنامج قيد التشغيل.
إذا كان أي من هذا مفيدًا، فنحن نرحب بالنجوم والاستشهادات!
يقيس عرض النطاق الترددي لنواة التدفق للإشغال المتفاوت. يعد تخصيص الذاكرة المشتركة بمثابة مفسد، بحيث يمكن تشغيل كتلتين فقط من الخيوط لكل SM. يؤدي مسح حجم كتلة الخيط من 32 إلى 1024 إلى مسح الإشغال من 3% إلى 100%.
نواة | صيغة | |
---|---|---|
الحرف الأول | أ[i] = ج | 1 تيار المتجر |
يقرأ | المجموع = أ[i] | 1 تيار التحميل |
حجم | أ[i] = ب[i] * ج | 1 تيار تحميل، 1 تيار مخزن |
ثالوث | أ[i] = ب[i] + ج * ج[i] | 2 تيارات التحميل، 1 تيار المتجر |
3 نقطة | أ[i] = ب[i-1] + ب[i] + ب[i+1] | 1 تيارات التحميل، 1 تيار المتجر |
5 نقطة | A[i] = B[i-2] + B[i-1] + B[i] + B[i+1] + B[i+2] | 1 تيارات التحميل، 1 تيار المتجر |
النتائج من NVIDIA-H100-PCIe / CUDA 11.7
المواضيع blockSize %occ | init قراءة مقياس الثالوث 3pt 5pt 32 3648 3 % | جيجابايت/ثانية: 228 96 183 254 168 164 64 7296 6.2% | جيجابايت/ثانية: 452 189 341 459 316 310 96 10944 9.4% | جيجابايت/ثانية: 676 277 472 635 443 436 128 14592 12.5% | جيجابايت/ثانية: 888 368 607 821 567 558 160 18240 15.6% | جيجابايت/ثانية: 1093 449 704 966 680 670 192 21888 18.8% | جيجابايت/ثانية: 1301 533 817 1121 794 781 224 25536 21.9% | جيجابايت/ثانية: 1495 612 925 1264 903 889 256 29184 25.0% | جيجابايت/ثانية: 1686 702 1037 1399 1005 989 288 32832 28.1% | جيجابايت/ثانية: 1832 764 1124 1487 1100 1082 320 36480 31.2% | جيجابايت/ثانية: 2015 841 1213 1564 1188 1169 352 40128 34.4% | جيجابايت/ثانية: 2016 908 1295 1615 1269 1250 384 43776 37.5% | جيجابايت/ثانية: 2016 985 1378 1644 1348 1326 416 47424 40.6% | جيجابايت/ثانية: 2016 1045 1439 1641 1415 1395 448 51072 43.8% | جيجابايت/ثانية: 2016 1116 1497 1649 1472 1453 480 54720 46.9% | جيجابايت/ثانية: 2016 1179 1544 1655 1521 1505 512 58368 50.0% | جيجابايت/ثانية: 2017 1261 1583 1675 1556 1545 544 62016 53.1% | جيجابايت/ثانية: 2016 1300 1591 1669 1572 1563 576 65664 56.2% | جيجابايت/ثانية: 2016 1362 1607 1678 1587 1579 608 69312 59.4% | جيجابايت/ثانية: 2018 1416 1619 1689 1598 1592 640 72960 62.5% | جيجابايت/ثانية: 2016 1473 1639 1712 1613 1607 672 76608 65.6% | جيجابايت/ثانية: 2016 1527 1638 1714 1618 1613 704 80256 68.8% | جيجابايت/ثانية: 2015 1578 1644 1725 1625 1619 736 83904 71.9% | جيجابايت/ثانية: 2016 1624 1651 1738 1632 1628 768 87552 75.0% | جيجابايت/ثانية: 2016 1680 1666 1755 1642 1638 800 91200 78.1% | جيجابايت/ثانية: 2015 1714 1663 1758 1645 1642 832 94848 81.2% | جيجابايت/ثانية: 2016 1759 1668 1770 1649 1647 864 98496 84.4% | جيجابايت/ثانية: 2016 1795 1673 1779 1654 1651 896 102144 87.5% | جيجابايت/ثانية: 2016 1837 1686 1796 1663 1662 928 105792 90.6% | جيجابايت/ثانية: 2018 1871 1684 1800 1666 1664 960 109440 93.8% | جيجابايت/ثانية: 2016 1897 1688 1808 1672 1670 992 113088 96.9% | جيجابايت/ثانية: 2016 1919 1693 1818 1678 1675 1024 116736 100.0% | جيجابايت/ثانية: 2016 1942 1704 1832 1686 1683
نتائج نواة SCALE ومجموعة مختارة من وحدات معالجة الرسومات:
لاحظ أن نتائج H100 تخص إصدار PCIe، الذي يحتوي على نطاق ترددي أقل لذاكرة DRAM مقارنة بإصدار SXM!
مؤشر يطارد المعيار لقياس الكمون. يجتاز الالتواء الفردي المخزن المؤقت بالكامل بترتيب عشوائي. يتم استخدام نظام التقسيم لضمان ضرب جميع خطوط ذاكرة التخزين المؤقت مرة واحدة بالضبط قبل الوصول إليها مرة أخرى. يتم حساب زمن الوصول في دورات الساعة بمعدل الساعة الحالي.
تنتقل ذاكرة التخزين المؤقت Sharp L1 بسرعة 128/192/256 كيلو بايت لـ NVIDIAS V100/A100/H100 وبسرعة 16 كيلو بايت لـ MI210 من AMD. يحتوي كل من V100 وMI210 على ذاكرة تخزين مؤقت L2 بسعة 6 ميجابايت. تحتوي أجهزة A100 وH100 على ذاكرة تخزين مؤقت L2 مجزأة بسعة 2x20 ميجابايت و2x25 ميجابايت، والتي تظهر كهضبة متوسطة صغيرة عند جلب البيانات من قسم L2 البعيد.
تحتوي وحدة معالجة الرسومات RDNA2، RX6900XT، على التسلسل الهرمي لذاكرة التخزين المؤقت الأكثر إثارة للاهتمام مع 4 مستويات من ذاكرة التخزين المؤقت مرئية بوضوح: ذاكرة التخزين المؤقت L0 بسعة 16 كيلو بايت، وذاكرة التخزين المؤقت L1 شبه المشتركة بسعة 128 كيلو بايت، وذاكرة التخزين المؤقت L2 بسعة 4 ميجا بايت، وذاكرة التخزين المؤقت Infinity بسعة 128 ميجا بايت. وهي أيضًا أعلى وحدة معالجة رسومات (GPU) لتسجيل الوقت، بحيث تكون أوقات الوصول المطلقة أقل من وحدات معالجة الرسومات الأخرى. من الصعب قياس زمن انتقال DRAM، لأن واجهة DRAM لا تعمل على واجهة موجة واحدة، مما يؤدي إلى زمن انتقال DRAM > 2000 دورة.
يقيس النطاق الترددي لمستوى ذاكرة التخزين المؤقت الأول والثاني. يطلق كتلة خيط واحدة لكل SM. تقرأ كل كتلة مؤشر ترابط محتويات المخزن المؤقت نفسه بشكل متكرر. يؤدي تغيير أحجام المخزن المؤقت إلى تغيير مستوى ذاكرة التخزين المؤقت المستهدفة.
تتميز سعة ذاكرة التخزين المؤقت 16 كيلو بايت (MI100/MI210)، و128 كيلو بايت (V100)، و192 كيلو بايت (A100)، و256 كيلو بايت (H100) L1 بأنها واضحة للغاية وحادة. تنقل معماريات NVIDIA الثلاثة ما يقرب من 128B/cycle/SM، وتعتمد القيمة القصوى المقاسة على MI100 وMI210 من AMD على نوع البيانات. للحصول على دقة مضاعفة، الحد الأقصى هو 32B/دورة/CU. بالنسبة لأنواع البيانات ذات الدقة الفردية و16B (إما float4 أو double2)، يصل عرض النطاق الترددي إلى 64B.
لا يستهدف هذا المعيار مستويات التسلسل الهرمي للذاكرة التي تتجاوز مستوى ذاكرة التخزين المؤقت الثاني (أي DRAM لمعظم وحدات معالجة الرسومات)، لأن مجموعات البيانات لا تسقط بشكل واضح من ذاكرة التخزين المؤقت المشتركة. نظرًا لأن جميع كتل الخيوط تقرأ نفس البيانات، فهناك الكثير من إمكانية إعادة الاستخدام داخل ذاكرة التخزين المؤقت المشتركة قبل سحب البيانات. تعتبر قيم RX6900XT رائعة بعد ذاكرة التخزين المؤقت L1 المشتركة التي تبلغ سعتها 128 كيلو بايت. تنخفض سعة A100 وH100 قليلًا عند 20/25 ميجابايت، عند تجاوز سعة قسم ذاكرة تخزين مؤقت واحد. بعد هذه النقطة، لا يمكن نسخ البيانات في كلا قسمي ذاكرة التخزين المؤقت L2 وينخفض الحد الأقصى لعرض النطاق الترددي، حيث يجب أيضًا جلب البيانات من القسم الآخر.
يقيس النطاق الترددي لمستويات ذاكرة التخزين المؤقت المشتركة. لا يستهدف هذا المعيار بشكل صريح ذاكرة التخزين المؤقت L1.
تتمتع جميع وحدات معالجة الرسومات الثلاثة بنطاق ترددي مماثل لذاكرة التخزين المؤقت L2 يبلغ حوالي 5.x تيرابايت/ثانية، على الرغم من وجود سعات مختلفة.
الملاحظة الرائعة هي RX6900XT، الذي يحتوي على مستوى ذاكرة تخزين مؤقت مشترك ثانٍ، وهو ذاكرة التخزين المؤقت Infinity بسعة 128 ميجابايت. وبسرعة تبلغ 1.92 تيرابايت/ثانية تقريبًا، فهي تعادل سرعة DRAM الخاصة بـ A100. في البداية، يمكن رؤية ذاكرة التخزين المؤقت L1 شبه المشتركة RX6900XT، حيث يكون لذاكرة التخزين المؤقت L1 الأربعة تأثير بسيط في بعض مواضع الكتل. الأمر نفسه ينطبق على H100، الذي يحتوي على ذاكرة تخزين مؤقت L1 أكبر مع فرصة متزايدة لكتلة مؤشر الترابط للعثور على البيانات التي تريد العمل عليها بالفعل في ذاكرة التخزين المؤقت L1 التي تم تحميلها بواسطة كتلة مؤشر الترابط السابقة. يعمل هذا فقط مع مجموعات البيانات الصغيرة، حيث لا يوجد سوى عدد قليل من كتل البيانات المختلفة ولا تزال هذه الفرصة كبيرة. لا يُعزى هذا إلى شبكة الذاكرة المشتركة الموزعة، التي تسمح بالتحميل من ذاكرة SM المشتركة الأخرى، لأنها تعمل فقط مع عمليات تحميل الذاكرة المشتركة الصريحة وليس عمليات التحميل العامة. قد يتطلب ذلك التحقق من العلامة في كل ذاكرة تخزين مؤقت L1 في GPC بحثًا عن أي تحميل.
للقراءة فقط، معيار ذاكرة التخزين المؤقت L1 الذي يصل إلى الذاكرة بخطوات من 1 إلى 128. يتم تحويل عرض النطاق الترددي إلى بايت لكل دورة وSM. يتم تنسيق الخطوات من 1 إلى 128 في لوحة مقاس 16×8، لأن ذلك يسلط الضوء على الأنماط المتكررة لمضاعفات 2/4/8/16.
كل جهاز يحصل على نوبة
الذي يصمم الأداء مع عبء بدء التشغيل
يقوم هذا البرنامج بمسح نطاق من الكثافات الحسابية، عن طريق تغيير مقدار رحلات الحلقة الداخلية. إنه مناسب لدراسة الانتقال من الذاكرة إلى حساب الرموز المرتبطة بالإضافة إلى استهلاك الطاقة وترددات الساعة ودرجات الحرارة عند استخدام وحدات معالجة الرسومات المتعددة. يبني برنامج shell script series.sh ملفًا قابلاً للتنفيذ لكل قيمة، وينفذها الواحدة تلو الأخرى بعد الانتهاء من البناء.
يعمل الكود في وقت واحد على جميع الأجهزة المتاحة. مثال على الإخراج على أربعة Tesla V100 PCIe 16GB:
1 640 قطعة 0 0.125 Fl/B 869 جيجابايت/ثانية 109 جيجا بايت/ثانية 1380 ميجا هرتز 138 واط 60 درجة مئوية 640 قطعة 0 0.125 فلوريدا/ب 869 جيجابايت/ثانية 109 جيجا بايت/ثانية 1380 ميجا هرتز 137 واط 59 درجة مئوية 3 640 قطعة 0 إنه 0.125 Fl/B 869 GB/s 109 GF/s 1380 Mhz 124 W 56°C0 640 قطعة 0 0.125 Fl/B 869 GB/s 109 GF/s 1380 Mhz 124 W 54°C1 640 قطعة 8 1.125 Fl/B 861 جيجابايت/ثانية 968 جيجا بايت/ثانية 1380 ميجا هرتز 159 واط 63 درجة مئوية 0 640 قطعة 8 1.125 فلوريدا/برتقال 861 جيجا/ثانية 968 جيجا/ثانية 1380 ميجا هرتز 142 واط 56 درجة مئوية 2 640 قطعة 8 1.125 فلوريدا/برتقال 861 جيجا/ثانية 968 فرنك غيني/ث 1380 ميجا هرتز 157 واط 62 درجة مئوية 3 640 قطعة 8 1.125 فلوريدا/ثانية 861 جيجا بايت/ثانية 968 جيجا بايت/ثانية 1380 ميجا هرتز 144 واط 59 درجة مئوية[...]0 640 قطعة 64 8.125 فلوريدا/ثانية 811 جيجا/ثانية 6587 جيجا بايت / ث 1380 ميجا هرتز 223 وات 63 درجة مئوية 3 640 قطعة 64 8.125 فلوريدات / ب 813 جيجا بايت / ثانية 6604 جيجا بايت / ثانية 1380 ميجا هرتز 230 واط 66 درجة مئوية 1 640 كتلة 64 8.125 فلوريدا / ب 812 جيجا بايت / ثانية 6595 جيجا بايت / ثانية 1380 ميجا هرتز 241 واط 71 درجة مئوية 640 قطعة 64 8.125 فلوريدات/ثانية 813 جيجا بايت/ثانية 6603 جيجا بايت/ثانية 1380 ميجا هرتز 243 واط 69 درجة مئوية
يقيس معدل النقل من المضيف إلى الجهاز الخاص بوظيفة cudaMemcpy عبر مجموعة من أحجام النقل
مثال على الإخراج لـ Tesla V100 PCIe سعة 16 جيجابايت
1kB 0.03ms 0.03GB/s 0.68% 2kB 0.03ms 0.06GB/s 5.69% 4kB 0.03ms 0.12GB/s 8.97% 8kB 0.03ms 0.24GB/s 6.25% 16kB 0.04ms 0.44GB/s 5.16% 32 كيلو بايت 0.04 مللي ثانية 0.93 جيجابايت/ثانية 2.70% 64 كيلو بايت 0.04 مللي ثانية 1.77 جيجابايت/ثانية 5.16% 128 كيلو بايت 0.04 مللي ثانية 3.46 جيجابايت/ثانية 7.55% 256 كيلو بايت 0.05 مللي ثانية 5.27 جيجابايت/ثانية 1.92% 512 كيلو بايت 0.07 مللي ثانية 7.53 جيجابايت/ثانية 1.03% 1024 كيلو بايت 0.11 مللي ثانية 9.25 جيجابايت/ثانية 2.52% 2048 كيلو بايت 0.20 مللي ثانية 10.50 جيجابايت/ثانية 1.07% 4096 كيلو بايت 0.37 مللي ثانية 11.41 جيجابايت/ثانية 0.58% 8192 كيلو بايت 0.71 مللي ثانية 11.86 جيجابايت/ثانية 0.44% 16384 كيلو بايت 1.38 مللي ثانية 12.11 جيجابايت/ثانية 0.14% 32768 كيلو بايت 2.74 مللي ثانية 12.23 جيجابايت/ثانية 0.03% 65536 كيلو بايت 5.46 مللي ثانية 12.29 جيجابايت/ثانية 0.08% 131072 كيلو بايت 10.89 مللي ثانية 12.32 جيجابايت/ثانية 0.02% 262144 كيلو بايت 21.75 مللي ثانية 12.34 جيجابايت/ثانية 0.00% 524288 كيلو بايت 43.47 مللي ثانية 12.35 جيجابايت/ثانية 0.00% 1048576 كيلو بايت/ثانية 86.91 مللي ثانية 12.35 جيجابايت/ثانية 0.00%
يقيس معدل نقل الذاكرة الموحدة لـ CUDA باستخدام نواة STREAM الثلاثية. يتم استخدام مجموعة من أحجام مجموعة البيانات، أصغر وأكبر من ذاكرة الجهاز. مثال على الإخراج على Tesla V100 PCIe 16GB:
حجم المخزن المؤقت عرض النطاق الترددي 24 ميجابايت 0.1 مللي ثانية 3.2% 426.2 جيجابايت/ثانية 48 ميجابايت 0.1 مللي ثانية 24.2% 511.6 جيجابايت/ثانية 96 ميجابايت 0.1 مللي ثانية 0.8% 688.0 جيجابايت/ثانية 192 ميجابايت 0.3 مللي ثانية 1.8% 700.0 جيجابايت/ثانية 384 ميجابايت 0.5 مللي ثانية 0.5% 764.6 جيجابايت/ثانية 768 ميجابايت 1.0 مللي ثانية 0.2% 801.8 جيجابايت/ثانية 1536 ميجابايت 2.0 مللي ثانية 0.0% 816.9 جيجابايت/ثانية 3072 ميجابايت 3.9 مللي ثانية 0.1% 822.9 جيجابايت/ثانية 6144 ميجابايت 7.8 مللي ثانية 0.2% 823.8 جيجابايت/ثانية 12288 ميجابايت 15.7 مللي ثانية 0.1% 822.1 جيجابايت/ثانية 24576 ميجابايت 5108.3 مللي ثانية 0.5% 5.0 جيجابايت/ثانية 49152 ميجابايت 10284.7 مللي ثانية 0.8% 5.0 جيجابايت/ثانية
يقيس زمن الوصول والإنتاجية لعمليات FMA وDIV وSQRT. يقوم بمسح مجموعات من ILP=1..8، عن طريق إنشاء 1..8 سلاسل تبعية مستقلة، وTLP، عن طريق تغيير عدد الالتواء على SM من 1 إلى 32. الناتج النهائي هو جدول ILP/TLP، مع التبادل الإنتاجية (دورات لكل عملية):
مثال على الإخراج على Tesla V100 PCIe 16GB:
سوق دبي المالي 8.67 4.63 4.57 4.66 4.63 4.72 4.79 4.97 4.29 2.32 2.29 2.33 2.32 2.36 2.39 2.48 2.14 1.16 1.14 1.17 1.16 1.18 1.20 1.24 1.08 1.05 1.05 1.08 1.08 1.10 1.12 1.14 1.03 1.04 1.04 1.08 1.07 1.10 1.11 1.14 1.03 1.04 1.04 1.08 1.07 1.10 1.10 1.14DDIV111.55 111.53 111.53 111.53 111.53 668.46 779.75 891.05 55.76 55.77 55.76 55.76 55.76 334.26 389.86 445.51 27.88 27.88 27.88 27.88 27.88 167.12 194.96 222.82 14.11 14.11 14.11 14.11 14.11 84.77 98.89 113.00 8.48 8.48 8.48 8.48 8.48 50.89 59.36 67.84 7.51 7.51 7.51 7.51 7.51 44.98 52.48 59.97DSQRT101.26 101.26 101.26 101.26 101.26 612.76 714.79 816.83 50.63 50.62 50.63 50.63 50.62 306.36 357.38 408.40 25.31 25.31 25.31 25.31 25.31 153.18 178.68 204.19 13.56 13.56 13.56 13.56 13.56 82.75 96.83 110.29 9.80 9.80 9.80 9.80 9.80 60.47 70.54 80.62 9.61 9.61 9.61 9.61 9.61 58.91 68.72 78.53
يمكن استخراج بعض الميزات من المؤامرة.
الكمون:
سوق دبي المالي: 8 دورات
DDIV: 112 دورة
DSQRT: 101 دورة
إنتاجية اعوجاج واحد (يعمل على ربع SM واحد)، بدون تبعيات:
DFMA: 1/4 لكل دورة (ILP 2، لتداخل العمليات)
DDIV: 1/112 لكل دورة (لا يوجد ILP/تداخل)
DSQRT: 1/101 لكل دورة (لا يوجد ILP/تداخل)
إنتاجية الإعوجاجات المتعددة (جميع الأرباع SM)، والتبعيات غير ذات صلة:
DFMA: 1 لكل دورة
DDIV: 1/7.5 دورات
DSQRT: 1/9.6 دورات