امروزه این پتانسیل بالا در کارتهای گرافیکی باعث شده که تولیدکنندگان با عرضه میانافزارهایی، این محصولات را به عرصههای دیگر نیز وارد کنند. از جمله این میانافزارها CUDA Driver است که مخصوص کارتهای گرافیک انویدیا است و کارت گرافیک را تبدیل به پردازندهای همهمنظوره میکند. پس از نصب این میانافزار، میتوانید از مجموعه نرمافزارهایی که روی کارت گرافیک اجرا میشوند، بهره ببرید. برای نمونه نرمافزارهایی طراحی شدهاند که عملیات کدگذاری1 و کدبرداری2 ویدئو را روی کارتهای گرافیک انجام میدهند که باعث صرفهجویی در وقت و هزینه میشود و یا نرمافزارهایی برای پردازش بیدرنگ3 ویدئو روی کارتهای گرافیک وجود دارند. در ادامه این مقاله قصد داریم ابزار مفیدی را معرفی کنیم، که از قدرت کارتهای گرافیکی رایج انویدیا، از طریق نرمافزار (به ادعای سازندگانش زبان برنامهنویسی) متلب4 استفاده میکند. این کارتها عبارتند از جیفورس سری 8 به بالا، Quadro و Tesla.
معرفی
GPUmat جعبهابزاری5 است که برای سریعتر کردن محاسبات در نرمافزار متلب (که برای محیطهای دانشگاهی نامی آشناست) طراحی شده است. بهنحوی که محاسبات را با پردازنده کارتهای گرافیک4 انجام میدهد. اگر از کاربران متلب هستید که وقت زیادی را با آن صرف میکنید، با استفاده از این جعبهابزارها میتوانید کارهای خود را سریعتر انجام دهید. اگرچه خود متلب اغلب سریع است ولی اگر دادههای شما بسیار زیاد باشند، نیاز بهاین جعبهابزار را احساس خواهید کرد. این جعبهابزار رایگان، برای مراکز علمی و تحقیقاتی بسیار مفید است.
طریقه نصب
ابتدا از اینکه کارتگرافیک ذکر شده در بالا را دارید، اطمینان حاصل کنید و توجه کنید که به نسخه متلب 2007 یا جدیدتر از آن نیاز دارید. سپس به سایت زیر بروید و پس از انتخاب سیستم عامل CUDA 2.3، آن را دانلود کنید که از سه نرمافزار CUDA Driver و CUDA Toolkit و CUDA SDK تشکیل میشود و آنها را به همین ترتیب ذکر شده نصب کنید:
http://www.nvidia.com/object/cuda_get.html
سپس به سایت زیر بروید وآخرین نسخه جعبهابزار GPUmat را برای سیستم عامل خود دریافت کنید:
htpp://www.gp-you.org
اکنون فایل را از حالت آرشیو خارج کرده و پوشه GPUmat را باز کنید و فایل GPUstart.m را درون این پوشه پیدا و آدرس پوشه آن را کپی کنید. نرمافزار متلب را باز کنید و از نوار ابزار File» Set Path… را انتخاب کنید و آدرسی که کپی کردهاید را به مجموعه آدرسهای موجود اضافه کنید. در پایان نیز بهخط فرمان متلب بروید و دستور GPUstart را اجرا کنید. با اجرای این دستور GPUmat به مجموعه جعبهابزارهای متلب اضافه میشود.
طریقه استفاده از جعبهابزار
برای استفاده از این جعبه ابزار تنها باید متغیری از نوع GPUsingle تعریف کنید که این متغیر روی کارت گرافیکی تعریف میشود. کاری که این جعبه ابزار انجام میدهد این است که اکثر عملگرها و توابعی که جزو استاندارهای متلب هستند را برای GPUsingle تعریف میکند و شما تنها کاری که انجام میدهید این است که این توابع را صدا بزنید. بهطور مثال، چهار دستور زیر دو ماتریس Ah و Bh را از حافظه اصلی به حافظه کارتگرافیک انتقال میدهد و ضرب ماتریسی را روی آنها انجام میدهد و در پایان حاصل را به حافظه اصلی برمیگرداند و در Ch ذخیره کنید:
Ad = GPUsingle(Ah);
Bd = GPUsingle(Bh);
Cd = Bd*Ad;
Ch = single(Cd);
تابع GPUsingle() متغیری را از حافظه اصلی به حافظه کارت گرافیک میبرد. تابع single() عکس کار فوق را انجام میدهد. ورودی این دو تابع میتواند در هر ابعادی باشد و خروجی آن معادل اندازه ورودی است. بین این دو دستور میتوانید عملیات و محاسبات را انجام دهید که اگر دادهها از نوع GPUsingle باشند، عملیات به کارت گرافیک فرستاده میشود.
توابع و عملگرهای تعریف شده
در حال حاضر 50تابع و 14عملگر برای GPUsingle تعریف شده است که از جمله توابع fft، sin، sum، exp و log و عملگرها جمع، تفریق، ضرب، ضرب نقطهای و عملگرهای منطقی را میتوان نام برد. نام توابع طوری انتخاب شده که درست همان کاری را انجام میدهند که تابع همنام در متلب انجام میدهند. برای اطلاع کامل از لیست توابع و عملگرها و برخی تابعهای حرفهای دیگر به سایت GPUmat که در بالا ذکر شد رجوع کنید.
در انتها باید یادآور شویم که GPUsingle دادهای از نوع ممیزشناور با دقت ساده است و این به علت محدودیت فعلی پردازنده کارتهای گرافیک است و اگر بخواهید عملیات ممیزشناور با دقت مضاعف انجام دهید، تبدیل نوع داده بهصورت ضمنی صورت میگیرد و بخشی از دقت عدد از دست میرود.