انویدیا، RAPIDS وتحولی نوین در پردازش داده
شرکت معروف انویدیا (nvidia) که در حوزه کارتهای گرافیک، سابقهای دیرینه دارد، سالهاست که که در حوزه پردازشهای داده به کمک GPU ها یا همان واحدهای پردازش گرافیک هم فعال است که ماحصل آن، ایجاد کتابخانه برنامه نویسی کودا (CUDA) برای استفاده از توان پردازندههای گرافیکی برای محاسبات و برنامههای عمومی و عرضه آن به بازار از سال ۲۰۰۷ است .
معماری اجرای موازی و همزمان کد بر روی دادههای مختلف (یک دستور/چند داده یا همان SIMD) که برای کارهای گرافیکی که عملیات یکسانی باید به سرعت بر روی پیکسلهای تصویر به صورت همزمان انجام گیرد، پردازندههای گرافیکی را برای محاسبات ریاضی و اخیرا برای حوزههای هوش مصنوعی و پردازش داده نیز جذاب کرده است.
شرکت انویدیا با بهرهگیری از آپاچی پیکان (Apache Arrow) به عنوان بستر تحلیل داده در حافظه و توزیع آن در یک شبکه، که امروزه نقش مهمی در پروژههای پردازش داده دنیا و استارتاپهایی مانند Dremio ایفا میکند و به کمک کتابخانه کودا که امروزه به نسخه ۱۰ خود رسیده است، کتابخانه جدیدی با نام RAPIDS روانه بازار کرده است که تمامی عملیات کلاسیک پردازش داده را به کمک پردازندههای گرافیکی و توان محاسباتی بالای آنها میسر کرده است .
انویدیا با تشکیل یک گروه کاری از برخی از بازیکنان اصلی حوزه پردازش داده مانند شرکت آناکوندا (توزیع معروف پایتون) ، دیتابریکز (حامی و توسعه دهنده اصلی اسپارک)، MAPR (یکی از توزیعکنندگان اصلی نسخههای سفارشی هدوپ)، توسعهدهندگان پایترچ (یکی از کتابخانههای مطرح حوزه یادگیری عمیق)، IBM، اوبر (یکی از شرکتهای اصلی حوزه حمل و نقل آنلاین)، والمارت و Scikit-Learn (کتابخانه اصلی یادگیری ماشین پایتون) و چند شرکت دیگر حدود ۱۸ ماه بر روی پروژهای کار کردند با هدف استفاده از توان محاسباتی بالای پردازندههای گرافیکی در علم داده و ساخت خطوط پردازش داده سریعتر که نهایتا خروجی آن، منجر به پروژه متنباز RAPIDS گشت. امروزه میتوان علاوه بر پردازشهای معمولی و آزمایش بر روی دادهها، پردازش کلانداده را هم به کمک این کتابخانه جدید و با ساختاری مشابه با پردازشهای معمول داده در پایتون انجام داد.
رابط اصلی کار با کتابخانه RAPIDS زبان پایتون است که نکته بسیار مثبت این امر این است که با کتابخانههای اصلی پایتون مانند Pandas و ساختمان داده اصلی آن یعنی Dataframe ها هم کاملا منطبق است. یعنی میتوان کدهای موجود پردازش داده با پایتون و حتی اسپارک را به راحتی با این کتابخانه پردازش کرد و سرعت تحلیل و آماده سازی دادهها را بالا برد. تصویر زیر نمونهای از برنامههای نوشته شده با RAPIDS را نشان میدهد :
در وبلاگ رسمی انویدیا، یک مثال عملی خواندن و تحلیل ۴۰۰ گیگابایت اطلاعات وام مسکن و وضعیت رهن آنها با کمک این کتابخانه پیاده سازی شده است و نتایج آن بر روی دو نوع سرور معمولی انویدیا ( یک سرور DGX-2 و یا پنج سرور DGX-1 ) که دارای کارت گرافیکهای قوی این شرکت هستند در مقایسه با پردازش مبتنی بر CPU، بهبودی فوقالعاده را نشان می دهد.
شکل زیر خروجی تصویرسازی از این ۴۰۰ گیگابایت داده بوده با این کتابخانه است که در عرض چند دقیقه صورت گرفته است و در مقایسه با زمان یک یا دوساعتی که برای ۲۰ تا ۱۰۰ سیپی یو طول کشیده است، زمان بسیار دلگرمکنندهای است :
هدف گذاری اصلی این کتابخانه در سه حوزه پیش پردازش، مدلسازی و اعمال الگوریتمهای یادگیری ماشین و نیز تصویرسازی داده هاست که برای نیل به این مقصود، از کتابخانههای متناظر پردازش گراف، یادگیری ماشین، تحلیل دیتافریمها، یادگیری عمیق و تصویرسازی اختصاصی بهره میبرد (مشاهده جزییات) که همه آنها دادههای خود را برای پردازش از حافظه و از طریق واسط استاندارد Apache Arrow می خوانند.