پشتیبانی CUDA از MLX اپل

پشتیبانی CUDA از MLX اپل برای کارت‌های گرافیک انویدیا

در این مقاله به پشتیبانی CUDA از MLX اپل میپردازیم. پشتیبانی CUDA از فریم‌ورک یادگیری ماشین MLX اپل، که در ابتدا برای Apple Silicon طراحی شده بود، در حال اضافه شدن است. این بدان معناست که توسعه‌دهندگان میتوانند مدل‌های MLX را مستقیماً روی پردازنده‌های گرافیکی NVIDIA اجرا کنند، که اتفاق بسیار مهمی است. دلیلش اینجاست.

توسعه‌دهنده‌ای با نام کاربری zcbenz در GitHub مسئولیت این کار را بر عهده دارد. او چند ماه پیش نمونه‌سازی پشتیبانی از CUDA را آغاز کرد و از آن زمان، پروژه را به قطعات کوچکتر تقسیم و به تدریج در شاخه اصلی MLX اپل ادغام کرد. این backend هنوز در حال توسعه است، اما چندین عملیات اصلی مانند ضرب ماتریس، softmax، کاهش، مرتب‌سازی و فهرست‌بندی در حال حاضر پشتیبانی و آزمایش میشوند.

CUDA چیست؟ CUDA (Compute Unified Device Architecture) اساساً Metal برای سخت‌افزار NVIDIA است: یک پلتفرم محاسباتی که این شرکت به طور خاص برای اجرا بر روی پردازنده‌های گرافیکی خود ایجاد کرده تا از آنها برای وظایف محاسباتی موازی با کارایی بالا استفاده کند.

برای بسیاری، CUDA روش استاندارد برای اجرای حجم کاری یادگیری ماشین بر روی پردازنده‌های گرافیکی NVIDIA است و در سراسر اکوسیستم ML، از تحقیقات آکادمیک گرفته تا استقرار تجاری، استفاده میشود. فریم‌ورک‌هایی مانند PyTorch و TensorFlow، که نام‌هایشان حتی در خارج از حلقه‌های عمیق ML نیز به طور فزاینده‌ای آشنا هستند، همگی برای بهره‌گیری از شتاب GPU به CUDA متکی هستند.

چرا MLX اپل اکنون از CUDA پشتیبانی می‌کند؟ از آنجایی که MLX به طور محکم با Metal در پلتفرم‌های اپل ادغام شده است، در ابتدا برای اجرا در خارج از macOS ساخته نشده بود. اما افزودن یک backend CUDA این وضعیت را تغییر میدهد و به محققان و مهندسان راهی میدهد تا به صورت محلی روی یک مک، با استفاده از Metal و Apple Silicon، نمونه‌سازی کند و سپس همان کد را روی خوشه‌های GPU NVIDIA در مقیاس بزرگ اجرا کنند، که هنوز هم بر حجم کاری آموزش یادگیری ماشین تسلط دارند.

با این حال، هنوز محدودیت‌هایی وجود دارد که بیشتر آنها در حال توسعه هستند. به عنوان مثال، هنوز همه اپراتورهای MLX پیاده‌سازی نشده‌اند و پشتیبانی از GPU AMD هنوز در مراحل بعدی قرار دارد.

با این وجود، آوردن کد MLX به پردازنده‌های گرافیکی NVIDIA بدون نیاز به بازنویسی آن، درها را به روی آزمایش، تجربه‌ و موارد استفاده تحقیقاتی سریع‌تر باز می‌کند، که این تقریباً تمام چیزی است که یک توسعه‌دهنده هوش مصنوعی میتواند امیدوار باشد.