CUDA and the rise of NVIDIA - editorial illustration

جنسن هوانگ، CUDA و ظهور NVIDIA

مقدمه

وقتی جنسن هوانگ در سال ۱۹۹۳ NVIDIA را تأسیس کرد، هدف آن آوردن گرافیک سه‌بعدی به بازی‌های رایانه‌ای و چندرسانه‌ای بود. امروز پردازنده‌های همان شرکت برای آموزش و اجرای مدل‌های هوش مصنوعی به کار می‌روند. برای درک این تحول، بهتر است از پیشینه مهندسی هوانگ و پلتفرم نرم‌افزاری که NVIDIA ساخت، یعنی CUDA، شروع کنیم. [۱] [1]

۱. دوران حرفه‌ای مهندسی هوانگ

هوانگ که در تایوان به دنیا آمد، در سال ۱۹۸۴ مدرک کارشناسی مهندسی برق را از دانشگاه ایالتی اورگن گرفت. او از ۱۹۸۴ تا ۱۹۸۵ به عنوان طراح ریزپردازنده در AMD کار کرد و سپس از ۱۹۸۵ تا ۱۹۹۳ چند سمت را در LSI Logic بر عهده داشت. او مدیر Coreware شد، بخشی که مسئول راهبرد شرکت برای یکپارچه‌سازی اجزای متعدد یک سامانه رایانه‌ای روی یک تراشه واحد بود. در همان دوره، او در سال ۱۹۹۲ مدرک کارشناسی ارشد مهندسی برق را نیز از دانشگاه استنفورد دریافت کرد. [۲] [1]

در ۵ آوریل ۱۹۹۳، هوانگ به همراه کریس مالاکوفسکی و کرتیس پریم شرکت NVIDIA را تأسیس کرد. او از آغاز فعالیت شرکت، رئیس، مدیرعامل و عضو هیئت مدیره بوده است. در سال ۱۹۹۹، NVIDIA عرضه عمومی اولیه سهام خود را انجام داد. در همان سال، GeForce 256 را معرفی کرد که نقطه عطفی در تاریخ واحدهای پردازش گرافیکی (GPU) این شرکت بود. [۱] [1]

۲. CUDA چیست؟

NVIDIA در سال ۲۰۰۶ CUDA را به عنوان یک پلتفرم نرم‌افزاری و مدل برنامه‌نویسی برای انجام محاسبات متعدد به صورت موازی روی GPUهای خود معرفی کرد. GPU سخت‌افزاری است که محاسبات را انجام می‌دهد. CUDA ابزارهای برنامه‌نویسی را فراهم می‌کند که توسعه‌دهندگان برای اجرای محاسبات خود روی آن سخت‌افزار استفاده می‌کنند. این امر GPUهای ساخته‌شده برای گرافیک را به روی کاربردهای پژوهش علمی، محاسبات با کارایی بالا و هوش مصنوعی گشود. [۱] [1]

تصور کنید تصویری با یک میلیون پیکسل را روشن‌تر می‌کنید. محاسبه برای یک پیکسل می‌تواند مستقل از بقیه پیش برود. یک برنامه CUDA می‌تواند آن کار را به محاسبات کوچک‌تر تقسیم کند و روی GPU اجرا کند. تابعی که روی GPU اجرا می‌شود هسته (کرنل) نام دارد. رشته‌های پردازشی بسیاری آن را به صورت موازی اجرا می‌کنند و هر کدام روی بخش تعیین‌شده‌ای از داده‌ها کار می‌کنند. همان اصل تقسیم کار به بخش‌هایی که می‌توانند موازی اجرا شوند، برای محاسبات هوش مصنوعی مانند ضرب ماتریس‌های بزرگ نیز صدق می‌کند. [۳] [1]

۳. CUDA چگونه به صنعت هوش مصنوعی کمک کرد

هنگام آموزش یک شبکه عصبی، مدل ابتدا یک پیش‌بینی انجام می‌دهد. فرایند آموزش خطا را اندازه می‌گیرد و پارامترهای مدل را به‌روز می‌کند و این فرایند را بارها تکرار می‌کند. GPUها عملیاتی مانند ضرب ماتریس را تسریع می‌کنند، به پژوهشگران زمان می‌دهند تا آزمایش‌های بیشتری انجام دهند و آموزش مدل‌های بزرگ‌تر را عملی می‌سازند. GPUها پس از آموزش نیز استفاده می‌شوند، در مرحله استنتاج، وقتی مدلی مانند مدل زبانی پاسخی برای کاربر تولید می‌کند. [۴] [1]

AlexNet در سال ۲۰۱۲ نمایشی عملی ارائه داد. این مدل که روی GPUهای NVIDIA آموزش دیده بود، مسابقه طبقه‌بندی تصویر ImageNet را برد. عملکرد آن نشان داد که چگونه پردازنده‌های گرافیکی مورد استفاده در بازی‌های رایانه‌ای می‌توانند مدل‌هایی برای تشخیص تصاویر نیز آموزش دهند. [۱] [1]

۴. CUDA چگونه به NVIDIA مزیتی ماندگار داد

NVIDIA کتابخانه‌ها و ابزارهای بهینه‌سازی‌شده‌ای برای محاسباتی ساخت که توسعه‌دهندگان اغلب به آن‌ها نیاز دارند. cuBLAS عملیات ماتریسی را تسریع می‌کند، cuDNN از عملیات رایج شبکه‌های عصبی پشتیبانی می‌کند، NCCL ارتباط میان GPUها را مدیریت می‌کند و TensorRT به مدل‌های آموزش‌دیده کمک می‌کند سریع‌تر اجرا شوند. چارچوب‌هایی مانند PyTorch از CUDA پشتیبانی می‌کنند، بنابراین توسعه‌دهندگان می‌توانند بدون نوشتن هر عملیات GPU از ابتدا از این قابلیت‌ها استفاده کنند. [۵] [1]

نتیجه‌گیری

آن اکوسیستم نرم‌افزاری، کسب‌وکار سخت‌افزاری NVIDIA را تقویت کرد. یک تیم می‌تواند از یک آزمایش کوچک به سامانه‌ای که روی GPUهای متعدد اجرا می‌شود برسد و در عین حال به استفاده از نرم‌افزار و ابزارهای آشنا ادامه دهد. تغییر سخت‌افزار ممکن است تیم را ملزم کند وابستگی‌های خود به CUDA را بازبینی کند، بخش‌هایی از نرم‌افزار خود را تطبیق دهد و کارایی را دوباره آزمایش کند. NVIDIA با سرمایه‌گذاری سال‌ها در نرم‌افزار در کنار سخت‌افزار، وقتی تقاضا برای محاسبات هوش مصنوعی رشد کرد، ابزارهایی آماده برای توسعه‌دهندگانی داشت که از قبل می‌دانستند چگونه از آن‌ها استفاده کنند. [۱] [1]

منابع

  1. https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
  2. https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
  3. https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
  4. https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
  5. https://developer.nvidia.com/machine-learning

پرسش‌هایی درباره جنسن هوانگ، CUDA و ظهور NVIDIA

CUDA چیست و NVIDIA چرا آن را ساخت؟

CUDA یک پلتفرم نرم‌افزاری و مدل برنامه‌نویسی است که NVIDIA در سال ۲۰۰۶ برای اجرای موازی محاسبات متعدد روی GPUهای خود معرفی کرد. GPU سخت‌افزار است؛ CUDA ابزارهای برنامه‌نویسی را فراهم می‌کند که سخت‌افزار گرافیکی را به روی پژوهش علمی، محاسبات با کارایی بالا و هوش مصنوعی گشودند.

CUDA چگونه به صنعت هوش مصنوعی کمک کرد؟

آموزش یک شبکه عصبی یعنی تکرار پیش‌بینی، اندازه‌گیری خطا و به‌روزرسانی پارامترها بارها و بارها. GPUها عملیاتی مانند ضرب ماتریس را تسریع می‌کنند و به پژوهشگران امکان می‌دهند آزمایش‌های بیشتری انجام دهند و مدل‌های بزرگ‌تری آموزش دهند. AlexNet که روی GPUهای NVIDIA آموزش دیده بود، با بردن مسابقه ImageNet سال ۲۰۱۲ این را اثبات کرد.

چرا CUDA به NVIDIA مزیتی ماندگار می‌دهد؟

NVIDIA کتابخانه‌های بهینه‌سازی‌شده‌ای ساخت که توسعه‌دهندگان اغلب به آن‌ها نیاز دارند – cuBLAS برای عملیات ماتریسی، cuDNN برای عملیات شبکه‌های عصبی، NCCL برای ارتباط چند GPU و TensorRT برای استنتاج سریع‌تر – و چارچوب‌هایی مانند PyTorch از CUDA پشتیبانی می‌کنند، بنابراین تیم‌ها می‌توانند بدون بازنویسی نرم‌افزار خود از یک آزمایش کوچک به GPUهای متعدد گسترش یابند.

Powered By K7