کالبدشکافی پردازش موازی در GPU: چرا کارتهای گرافیک برای هوش مصنوعی و بازی ضروری هستند؟
پردازندههای گرافیکی (GPU) با استفاده از هزاران هسته کوچک و معماری پردازش موازی، محاسبات سنگین را به طور همزمان انجام میدهند. این مقاله به بررسی تفاوت معماری CPU و GPU، نحوه عملکرد هستههای CUDA و دلیل اهمیت حیاتی آنها در اجرای مدلهای هوش مصنوعی میپردازد.
به قلم کاوان رامین
این خبر را به اشتراک بگذارید
بهطور خلاصه
- پردازندههای مرکزی (CPU) برای کارهای متوالی و تصمیمگیریهای پیچیده با تأخیر پایین طراحی شدهاند.
- پردازندههای گرافیکی (GPU) دارای هزاران هسته کوچک هستند که محاسبات ساده را به صورت همزمان انجام میدهند.
- معماری SIMD به GPU اجازه میدهد یک دستورالعمل ریاضی را همزمان روی میلیونها داده اعمال کند.
اگر بخواهید یک آسمانخراش بسازید، دو راه دارید: یا یک مهندس نابغه استخدام کنید که با سرعت و دقت بینظیری آجرها را یکییکی روی هم میچیند، یا دههزار کارگر معمولی بیاورید که همزمان هر کدام یک آجر را سر جایش میگذارند. تفاوت پردازنده مرکزی (CPU) و پردازنده گرافیکی (GPU) دقیقاً در همین نقطه خلاصه میشود. در حالی که CPU همان مهندس همهفنحریف است که سیستمعامل را مدیریت میکند، GPU ارتش کارگرانی است که محاسبات ساده را به صورت موازی و در کسری از ثانیه انجام میدهند.
بازاریابی شرکتهای فناوری معمولاً پردازندههای گرافیکی را به عنوان «مغز جادویی» هوش مصنوعی معرفی میکند، اما واقعیت فیزیکی آنها بسیار سادهتر و البته مکانیکیتر است. پردازندههای گرافیکی در ابتدا تنها برای یک هدف طراحی شدند: محاسبه رنگ میلیونها پیکسل روی صفحه نمایش در هر فریم از یک بازی ویدیویی. رندر کردن یک محیط سهبعدی با وضوح 4K نیازمند محاسبه نور، سایه و بافت برای بیش از ۸ میلیون پیکسل در هر فریم، آن هم ۶۰ بار در ثانیه است.
این کار نیازمند انجام یک عملیات ریاضی یکسان روی دادههای متفاوت بود؛ مفهومی که در علوم کامپیوتر به آن SIMD (یک دستورالعمل، چند داده) میگویند. وقتی قرار است نور محیط در یک بازی ۱۰ درصد تاریکتر شود، نیازی نیست پردازنده برای هر پیکسل یک تصمیم منطقی جدید بگیرد؛ بلکه باید یک فرمول ضرب ساده را همزمان روی میلیونها عدد اعمال کند. این دقیقاً همان کاری است که معماری موازی برای آن متولد شد.
معماری CPU برای کارهای متوالی و حساس به تأخیر بهینهسازی شده است. یک پردازنده مرکزی مدرن معمولاً بین ۸ تا ۲۴ هسته بسیار قدرتمند دارد که میتوانند با فرکانسهای بالای ۵ گیگاهرتز کار کنند. بخش عمدهای از میلیاردها ترانزیستورِ یک CPU به حافظه پنهان و واحدهای پیشبینی پرش اختصاص یافته تا بتواند تصمیمات پیچیده سیستمعامل، اجرای مرورگرها و مدیریت پایگاههای داده را در لحظه مدیریت کند.
اما وقتی نوبت به ضرب ماتریسهای عظیم میرسد، این هستههای قدرتمند در صف طولانی محاسبات گیر میافتند. یک CPU میتواند یک رشته دستور را با سرعتی خیرهکننده اجرا کند، اما وقتی با مدلی مواجه میشود که نیازمند انجام میلیاردها محاسبه مستقل است، رویکرد خطی و متوالی آن به یک گلوگاه فیزیکی تبدیل میشود.
در مقابل، یک GPU مدرن مانند تراشههای پرچمدار انویدیا، به جای چند هسته بزرگ، دارای هزاران هسته کوچکتر است. به عنوان مثال، پردازنده گرافیکی RTX 4090 دارای ۱۶۳۸۴ هسته پردازشی است. بر اساس مستندات رسمی راهنمای برنامهنویسی CUDA از شرکت انویدیا: «پردازنده گرافیکی برای محاسبات به شدت موازی تخصصی شده است و بنابراین به گونهای طراحی شده که ترانزیستورهای بیشتری به جای کش کردن دادهها و کنترل جریان، به پردازش دادهها اختصاص یابند.»[1]
راز اصلی این قدرت در پلتفرم CUDA (معماری دستگاه یکپارچه محاسباتی) نهفته است که انویدیا آن را در سال ۲۰۰۶ معرفی کرد. پیش از CUDA، برنامهنویسان برای استفاده از قدرت GPU در کارهای غیرگرافیکی مجبور بودند محاسبات خود را به شکل پیکسل و سایهزن درآورند تا کارت گرافیک بتواند آنها را بفهمد. CUDA این مانع را از بین برد و به توسعهدهندگان اجازه داد تا از زبانهای استانداردی مانند C++ برای ارسال مستقیم دستورات ریاضی به هستههای GPU استفاده کنند.[1]
در این مدل برنامهنویسی، یک تابع که توسط CPU فراخوانی شده اما روی GPU اجرا میشود، «کرنل» نام دارد. وقتی یک برنامه هوش مصنوعی اجرا میشود، CPU دادهها را آماده کرده و یک کرنل را به سمت GPU میفرستد. GPU این کرنل را دریافت کرده و آن را روی شبکهای از هزاران رشته پردازشی کپی میکند تا همگی به صورت همزمان روی بخشهای مختلف داده کار کنند.[1]
در سطح سختافزار، این هستهها در گروههایی به نام Warp دستهبندی میشوند که هر کدام معمولاً شامل ۳۲ رشته است. تمام ۳۲ رشته در یک Warp یک دستورالعمل واحد را در یک پالس زمانی اجرا میکنند. اگر یکی از رشتهها به دلیل یک شرط منطقی مسیر متفاوتی را طی کند، سایر رشتهها باید منتظر بمانند. به همین دلیل است که برنامهنویسی برای GPU نیازمند ساختارشکنی کدهای سنتی و حذف شروط پیچیده است.[1]
در سطح سختافزار، این هستهها در گروههایی به نام Warp دستهبندی میشوند که هر کدام معمولاً شامل ۳۲ رشته است.
همین معماری است که GPU را به موتور محرک انقلاب هوش مصنوعی تبدیل کرده است. شبکههای عصبی عمیق و مدلهای زبانی بزرگ مانند GPT-4، در هسته خود چیزی جز میلیاردها عملیات ضرب و جمع ماتریسی نیستند. در فرآیند آموزش یک مدل، وزنهای شبکه عصبی باید تریلیونها بار با دادههای جدید تنظیم شوند.
وقتی از یک چتبات سوالی میپرسید، تولید هر کلمه نیازمند میلیاردها محاسبه ریاضی است تا مدل بتواند محتملترین کلمه بعدی را حدس بزند. CPU این مراحل را یکییکی طی میکند و ممکن است برای تولید یک جمله چند دقیقه زمان ببرد، اما GPU هزاران مرحله را در یک لحظه پردازش میکند و پاسخ را در کسری از ثانیه روی صفحه ظاهر میسازد.
یکی دیگر از تفاوتهای حیاتی، پهنای باند حافظه است. هستههای پردازشی بدون دسترسی سریع به دادهها بیفایدهاند. پردازندههای گرافیکی از حافظههای تخصصی مانند GDDR6 یا HBM استفاده میکنند که میتوانند ترابایتها داده را در هر ثانیه جابهجا کنند. این پهنای باند عظیم به GPU اجازه میدهد تا هزاران هسته خود را دائماً با دادههای جدید تغذیه کند و از بیکار ماندن آنها جلوگیری نماید.
با این حال، نباید فریب هیاهوی تبلیغاتی را خورد. پردازندههای گرافیکی به تنهایی نمیتوانند یک کامپیوتر را اداره کنند و هرگز جایگزین CPU نخواهند شد. آنها به شدت وابسته به CPU هستند تا سیستمعامل را اجرا کند، دادهها را از حافظه ذخیرهسازی بخواند و دستورات را به سمت کارت گرافیک هدایت کند. GPU در واقع یک شتابدهنده است، نه یک پردازنده مستقل.[2]
انتقال داده بین CPU و GPU خود یکی از گلوگاههای اصلی در پردازشهای سنگین است. دادهها باید از طریق درگاه PCIe از حافظه اصلی سیستم به حافظه گرافیکی منتقل شوند. در مدلهای هوش مصنوعی بسیار بزرگ که در حافظه یک کارت گرافیک جا نمیشوند، این رفت و برگشت مداوم دادهها میتواند تمام مزیت سرعت پردازش موازی را خنثی کند.[2]
شرکتهای سختافزاری برای حل این مشکل در حال توسعه معماریهای یکپارچهتری هستند. تراشههایی مانند سری M اپل، حافظه را بین CPU و GPU به اشتراک میگذارند تا نیازی به کپی کردن مداوم دادهها نباشد. با این حال، در دیتاسنترهای عظیم که مدلهای هوش مصنوعی را آموزش میدهند، همچنان استفاده از هزاران GPU مجزا تنها راهکار عملی است. مسیر آینده پردازش نه در حذف یکی از این دو معماری، بلکه در همکاری بهینهتر میان پردازش متوالی و موازی رقم خواهد خورد.[2]
اصطلاحات کلیدی
- پردازش موازی (Parallel Processing)
- انجام همزمان چندین عملیات محاسباتی توسط هستههای پردازشی متعدد برای کاهش زمان اجرای یک برنامه.
- معماری SIMD
- مخفف Single Instruction, Multiple Data؛ معماری که در آن یک دستورالعمل واحد به طور همزمان روی مجموعهای از دادههای مختلف اجرا میشود.
- پلتفرم CUDA
- یک رابط برنامهنویسی توسعهیافته توسط انویدیا که به توسعهدهندگان اجازه میدهد از پردازندههای گرافیکی برای محاسبات عمومی استفاده کنند.
- کرنل (Kernel)
- تابعی در برنامهنویسی موازی که توسط پردازنده مرکزی فراخوانی شده اما روی هزاران هسته پردازنده گرافیکی اجرا میشود.
- گلوگاه PCIe
- محدودیت سرعت در انتقال دادهها بین حافظه اصلی سیستم و حافظه کارت گرافیک از طریق درگاه اتصال سختافزاری.
پرسشهای متداول
چرا نمیتوانیم از پردازنده گرافیکی به جای پردازنده مرکزی استفاده کنیم؟
پردازندههای گرافیکی برای انجام همزمان هزاران محاسبه ساده طراحی شدهاند، اما در مدیریت کارهای پیچیده، شرطی و متوالی که سیستمعاملها به آن نیاز دارند، بسیار کند و ناکارآمد هستند.
آیا همه کارتهای گرافیک از CUDA پشتیبانی میکنند؟
خیر، پلتفرم CUDA به طور اختصاصی توسط شرکت انویدیا توسعه یافته و تنها روی پردازندههای گرافیکی همین شرکت قابل اجرا است.
چرا هوش مصنوعی به کارت گرافیک نیاز دارد؟
شبکههای عصبی و مدلهای هوش مصنوعی نیازمند انجام میلیاردها عملیات ضرب و جمع ماتریسی هستند که پردازندههای گرافیکی به دلیل معماری موازی خود، این کار را هزاران بار سریعتر از پردازندههای مرکزی انجام میدهند.
بررسی عمیق دیدگاهها
توسعهدهندگان هوش مصنوعی
تمرکز بر قدرت پردازش خام و پهنای باند حافظه برای کاهش زمان آموزش مدلها.
برای محققان و توسعهدهندگان هوش مصنوعی، GPU صرفاً یک ابزار محاسباتی است که زمان آموزش شبکههای عصبی را از ماهها به روزها کاهش میدهد. این گروه به شدت به پلتفرمهایی مانند CUDA وابستهاند، زیرا کتابخانههای بهینهسازی شدهای مانند cuDNN به آنها اجازه میدهد بدون درگیری با پیچیدگیهای سختافزاری، مدلهای خود را با بالاترین سرعت ممکن اجرا کنند. دغدغه اصلی این گروه، محدودیت حافظه VRAM در اجرای مدلهای چند میلیارد پارامتری است.
طراحان معماری CPU
تأکید بر اهمیت پردازش متوالی، مدیریت سیستم و کاهش تأخیر.
مهندسان معماری CPU استدلال میکنند که اگرچه GPU در محاسبات موازی بیرقیب است، اما همچنان یک پردازنده کمکی محسوب میشود. از دیدگاه آنها، هستههای CPU به دلیل توانایی در پیشبینی پرش و اجرای خارج از نوبت، برای اجرای کدهای پیچیده، سیستمعاملها و پایگاههای داده ضروری هستند. آنها معتقدند که آینده در ادغام این دو معماری نهفته است تا گلوگاه انتقال داده بین پردازنده و گرافیک از بین برود.
منتقدان انحصار سختافزاری
نگرانی از وابستگی شدید صنعت به پلتفرمهای بسته مانند CUDA.
بسیاری از فعالان حوزه متنباز و شرکتهای رقیب معتقدند که تسلط انویدیا بر بازار هوش مصنوعی تنها به دلیل سختافزار نیست، بلکه به خاطر انحصار نرمافزاری پلتفرم CUDA است. این گروه تلاش میکنند با توسعه استانداردهای باز مانند OpenCL و پلتفرم ROCm، وابستگی توسعهدهندگان به یک شرکت خاص را کاهش دهند تا امکان اجرای کدهای هوش مصنوعی روی پردازندههای گرافیکی سایر سازندگان نیز با همان کارایی فراهم شود.
- توسعهدهندگان هوش مصنوعی
- تمرکز بر قدرت پردازش خام و پهنای باند حافظه برای کاهش زمان آموزش مدلها.
- طراحان معماری CPU
- تأکید بر اهمیت پردازش متوالی، مدیریت سیستم و کاهش تأخیر.
- تحلیلگران مستقل
- بررسی بیطرفانه تفاوتهای معماری و کاربردهای بهینه هر پردازنده.
دیدگاههایی که این گزارش پوشش نداده
- توسعهدهندگان بازیهای ویدیویی مستقل که با محدودیتهای سختافزاری کاربران نهایی مواجهاند.
- سازندگان پردازندههای گرافیکی رقیب و رویکرد آنها به استانداردهای متنباز پردازش موازی.
منابع
[1]NVIDIA Docsتوسعهدهندگان هوش مصنوعیCUDA C++ Programming Guide: Introduction and Architecture
مطالعه در NVIDIA Docs →
[2]تیم سردبیری کوهستانتحلیلگران مستقلتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
بیشتر در فناوری
مشاهده همه →معماری سیستم
کالبدشکافی حافظه مجازی (Virtual Memory): چگونه کامپیوتر شما وانمود میکند که حافظه نامحدود دارد؟
3 منبع
طراحی تراشه
کالبدشکافی معماری پردازندهها: چرا تراشههای موبایل (ARM) اینقدر کممصرفتر از تراشههای دسکتاپ (x86) هستند؟
6 منبع
امنیت سختافزار
کالبدشکافی منطقه امن (Secure Enclave): گوشی شما واقعاً چگونه اثر انگشتتان را از خود سیستمعامل مخفی میکند؟
5 منبع
زیرساخت ابری
کالبدشکافی خنکسازی مراکز داده: سرورهای ابری چگونه در برابر ذوب شدن مقاومت میکنند؟
5 منبع
نظرات
هر زاویه. هر روز.
اخبار فناوری با پوشش کامل منابع و تحلیل دیدگاهها، هر روز و رایگان.





