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

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

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

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

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

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

منبع


رائفه خلیلی