جمعه 31 فروردین 1397 | Friday 20 th of April 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
3-10- برنامه نویسی multi-GPU

برنامه های کاربردی زمان اجرا کودا به برنامه نویسان امکان انتخاب دستگاه، جایی که کرنل ها اجرا می شوند را می دهد. بطور پیش فرض دستگاه صفر استفاده می شود. راهنما رسمی کودا گزارش می دهد که یک سیستم multi-GPUفقط زمانی می تواند کار کند که سیستم شامل GPUهای یکسانی باشد و SLIخاموش باشد. SLIیک راه حل NVIDIAبرای گرافیک های کامپیوتری است. بطور اساسی، این به دو یا چندین GPUاجازه می دهد که با هم کار کنند تا یک خروجی گرافیکی منفرد با تصاویر ورودی متفاوت که بصورت موازی پردازش شده اند تولید کند.

ما می توانیم حداقل به دو شیوه اصلی جریان های کنترل متفاوت GPUها را مدیریت کنیم، همانطور که در شکل3-16 برای سیستم دو GPUای نشان داده شده است. اولین مسیر می تواند برای فرستادن کرنل ها به یک روش ترتیبی باشد. اگر مقدار کار لازم برای GPUاول قابل توجه باشد این می تواند راه حل درستی باشد در غیر اینصورت موازی سازی پیشنهاد شده را باید بوسیله CPUهای مدرن بکار اندازیم.

برای استفاده از متن های کودا چندگانه ما می توانیم انها را به نخ های متفاوتی؛ یکی برای هر GPUمرتبط کنیم. برای کارکرد بهینه تعداد هسته های CPUنباید کمتر از تعداد GPUهای سیستم باشد. مدیریت نخ ها می تواند با استفاده از شیوه های متفاوتی مدیریت شود. سطح پایین ترین ان می تواند پیاده سازی یک لایه ارتباطی Ad-hocاز طریق کتابخانه های سیستم مثل NPTLباشد. در غیر اینصورت، کتابخانه های موجود مثل کتابخانه های ارسال پیام استفاده می شود تا ارتباطات حافظه اشتراکی انجام شود.

شکل 3- 16- دو شیوه ممکن برای برنامه ای کردن GPUها (a) ترتیبی (b) چند نخی

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26