یک CPU معمولی چند هسته (مثلاً ۸ تا ۶۴ هسته) دارد که هرکدام قدرتمند و برای اجرای دستورهای پیچیده و متنوع بهینه شدهاند — مناسب کارهایی که باید پیدرپی و با منطق شرطی زیاد اجرا شوند. یک GPU برعکس، هزاران هسته سادهتر دارد که همه یک نوع عملیات ریاضی (عمدتاً ضرب و جمع ماتریسی) را همزمان روی دادههای مختلف اجرا میکنند.
چرا این تفاوت برای AI مهم است؟
آموزش و اجرای شبکههای عصبی عمدتاً از عملیات ضرب ماتریس (matrix multiplication) تشکیل شده — دقیقاً همان کاری که معماری GPU برای آن ساخته شده. همین باعث میشود آموزش یک مدل که روی CPU روزها طول بکشد، روی GPU به ساعت یا حتی دقیقه کاهش پیدا کند.
CUDA و اکوسیستم نرمافزاری
کارتهای NVIDIA از طریق پلتفرم CUDA امکان اجرای مستقیم کد موازی روی GPU را میدهند و اکثر فریمورکهای یادگیری عمیق (PyTorch، TensorFlow) بهصورت بومی از CUDA پشتیبانی میکنند؛ یعنی نیازی به بازنویسی کد نیست، فقط سختافزار درست را باید انتخاب کنید.
CPU همچنان لازم است
- مدیریت سیستمعامل، شبکه، ذخیرهسازی و هماهنگی کلی برنامه همچنان روی CPU انجام میشود.
- برای پیشپردازش داده، منطق شرطی پیچیده یا کارهای غیرموازی، CPU سریعتر و کارآمدتر است.
- یک سرور GPU خوب، هم CPU قوی برای هماهنگی و هم GPU قدرتمند برای پردازش موازی دارد — این دو رقیب هم نیستند، مکملاند.
جمعبندی
برای آموزش یا اجرای مدلهای یادگیری ماشین، GPU بهخاطر معماری پردازش موازیاش گزینه درست است؛ CPU نقش هماهنگکننده و اجراکننده منطق عمومی سیستم را برعهده دارد.