Taco: ابزاری از MIT که می‌تواند سرعت محاسبات تنسوری را تا ۱۰۰ برابر افزایش دهد

Taco: ابزاری از MIT که می‌تواند سرعت محاسبات تنسوری را تا ۱۰۰ برابر افزایش دهد

هنگامی که پای تحلیل داده‌های به اصطلاح Sparse (خلوت) به میان می‌آید، الگوریتم‌های تحلیلی باید بارها و بارها عملیات جمع با صفر و ضرب در صفر را انجام دهند. برای ملموس‌تر شدن چنین موقعیتی، فرض کنید جدولی از تمام مشتری‌های آمازون و محصولات آن داریم به این ترتیب که اگر محصولی توسط یک مشتری خریداری شده باشد،‌ عدد یک و در غیر این صورت عدد صفر را به آن اختصاص می‌دهیم و این داده‌ها را به صورت یک ماتریس گرد هم می‌آوریم. چنین ماتریسی، یک ماتریس Sparse (خلوت) نامیده می‌شود. به عبارت دیگر، ماتریسی است که بیشتر عناصر آن صفر هستند. برای جلوگیری از مواجهه با این صفرها، باید برنامه‌های کاستومایز شده‌ای نوشته شود که بسیار پیچیده بوده و از سوی دیگر قادر به حل مشکلات مشخصی باشند که چنین چیزی به یمن تحقیقات دانشمندان MIT امکان‌پذیر شده است.

برای حل این مشکل،‌ تیمی متشکل از پژوهشگران MIT با همکاری کمیسیون انرژی اتمی و انرژی‌های جایگزین کشور فرانسه، سیستم جدیدی به نام Tensor Algebra Compiler یا به طور خلاصه Taco را ایجاد نموده‌اند (در علوم کامپیوتر، اصطلاح تِنسور به ماتریس‌هایی با ابعاد بزرگ اطلاق می‌شود) که سرعتی بیش از ۱۰۰ برابر سرعت پکیج‌های نرم‌افزاری بهینه نشدهٔ موجود دارد! این سیستم حتی با نرم‌افزارهای بهینه‌ شده و سفارشی که تاکنون به بازار عرضه شده‌اند نیز قابل رقابت است و این به معنای کاهش حجم کار برنامه‌نویس است.

این محصول جدید با برطرف نمودن نیاز به سفارشی‌سازی عملیات ماتریس خلوت،‌ امکان کدنویسی برای محاسبات تنسوری-جبری را در ماتریس‌های خلوت فراهم نموده است. در واقع، با استفاده از Taco تنها چیزی که برنامه‌نویس به آن نیاز خواهد داشت، مشخص نمودن ابعاد تنسور و محل فایل حاوی مقادیر داده‌ها است. پس از مشخص نمودن این دو مورد، با ایجاد یک نقشهٔ ترتیبی، جفت‌های صفر حذف شده و محاسبات روی الباقی داده‌ها صورت می‌گیرد.

علاوه بر این، Taco با استفاده از یک روش نمایه‌سازی (Indexing) خاص، تنها مقادیر غیر صفر تنسورهای خلوت را ذخیره می‌کند تا به این ترتیب حجم آنها را کاهش دهد. به عنوان مثال، یکی از تنسورهایی که توسط آمازون منتشر شده است و در حالت عادی و بدون حذف مقادیر صفر ۱۰۷ اگزابایت حجم دارد که با حذف عناصر صفر، حجم آن به ۱۳ گیگابایت کاهش خواهد یافت!

منبع


رائفه خلیلی