۲ آبان ۱۴۰۵ infoq.com ۳ دقیقه مطالعه

انتشار نسخه ۷ تورنادووی ام (TornadoVM): اجرای پردازش‌های بومی GPU در جاوا

انتشار نسخه ۷ تورنادووی ام (TornadoVM): اجرای پردازش‌های بومی GPU در جاوا — TornadoVM 7 Enables GPU-Native Workloads from Java Applications

خلاصه

نسخه ۷ فریم‌ورک TornadoVM امکان اجرای کدهای جاوا روی پردازنده‌های گرافیکی را با تغییرات اساسی معماری فراهم کرده است. این نسخه با حذف JNI و استفاده از APIهای مدرن، دسترسی مستقیم به اکوسیستم هوش مصنوعی و پردازش موازی را برای توسعه‌دهندگان جاوا ساده‌تر می‌کند.

فریم‌ورک متن‌باز TornadoVM که به‌عنوان ابزاری برای شتاب‌دهی به کدهای جاوا روی پردازنده‌های چندهسته‌ای و پردازنده‌های گرافیکی (GPU) شناخته می‌شود، با انتشار نسخه ۷ به یک نقطه عطف مهم رسیده است. این ابزار بدون نیاز به جایگزینی ماشین مجازی جاوا (JVM)، در کنار آن کار می‌کند و با توزیع‌های مختلف JDK مانند OpenJDK، GraalVM، Temurin و Zulu سازگار است. این معماری شعار معروف «یک بار بنویس، همه جا اجرا کن» را در دنیای پردازش‌های مدرن و یادگیری ماشین پیاده‌سازی می‌کند؛ یعنی می‌توانید کدهای خود را روی لپ‌تاپ توسعه دهید و روی سرورهای مجهز به GPUهای قدرتمند اجرا کنید.

تغییرات کلیدی معماری در نسخه ۷

در نسخه جدید، تحولات ساختاری مهمی رخ داده است که پایداری و عملکرد سیستم را افزایش می‌دهند:

  • مهاجرت به FFM API: بک‌اندها اکنون به جای استفاده از Java Native Interface یا همان JNI، از Foreign Function & Memory (FFM) API بهره می‌برند.
  • حذف JVMCI: وابستگی تجربی به JVM Compiler Interface حذف شده است و اکنون تمام متادیتای کامپایلر از طریق لایه‌ای مبتنی بر reflection، ASM و Unsafe استخراج می‌شود که مسیری واحد و یکپارچه در تمام نسخه‌های پشتیبانی‌شده JDK (مانند ۲۱، ۲۵، ۲۶ و ۲۷) فراهم می‌کند.
  • بهینه‌سازی CUDA و Apple Metal: این نسخه یکپارچگی عمیق‌تری با اکوسیستم NVIDIA از طریق بک‌اند بهینه‌شده CUDA (شامل مدل برنامه‌نویسی cuTile و دسترسی مستقیم به کتابخانه‌های cuBLAS و CUTLASS) و کتابخانه MXL اپل ارائه می‌دهد. همچنین پشتیبانی از اجرای چند پردازنده گرافیکی (Multi-GPU) اضافه شده است.

چرا این نسخه برای توسعه‌دهندگان جاوا اهمیت دارد؟

جاوا به‌طور سنتی انتخاب اول برای پردازش‌های سنگین موازی و یادگیری ماشین نبوده است، اما TornadoVM با هدف ایجاد یک محیط ایдиоماتیک (Idiomatic) در JVM برای دسترسی به کتابخانه‌های سخت‌افزاری توسعه یافته است. این فریم‌ورک به توسعه‌دهندگان اجازه می‌دهد از قابلیت‌هایی نظیر جبر خطی، تبدیل سریع فوریه (FFT)، شبکه‌های عصبی عمیق و ضرب ماتریس‌های تنک بهره‌مند شوند.

این پروژه دارای یکپارچه‌سازی‌های آماده با فریم‌ورک‌های بزرگی مانند Apache Flink، Quarkus، Lang4j و Spring AI است. برای مثال، در Apache Flink کافی است با یک پرچم پیکربندی مشخص کنید که یک کوئری جدول (Table API) روی GPU شتاب‌دهی شود؛ فریم‌ورک به‌صورت خودکار وجود GPU را بررسی کرده و در صورت امکان، محاسبات را به آن منتقل می‌کند.

همچنین تیم سازنده همزمان با این نسخه، jitLLM v2.0 را معرفی کرده‌اند که یک موتور استنتاج هوش مصنوعی مبتنی بر TornadoVM برای جاوا است و به عنوان رقیبی برای ابزارهایی مانند llama.cpp و Ollama در قالب یک فایل JAR واحد عرضه می‌شود.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.