جمعه 29 دی 1396 | Friday 19 th of January 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
5_4 خواص کاربردی دستگاه

باشد،چرا ممکن است ما به خواص هر دستگاه در سیستم خودمان علاقه مند شویم؟ از انجا که به عنوان توسعه دهندگان نرم افزار می خواهیم هر کس به نرم افزار ما که سریع است فکرکند،ممکن است به انتخاب GPUهمرا با بسیاری ازریز پردازنده ها دراجرای کد خودمان علاقه مند شویم. یا اگرهسته نیازمند تعامل نزدیک با CPUشد، ممکن است به جرای کد خود که بخشی از سهم حافظه سیستم همراه با CPUاست،علاقه مند شویم.این هر دو خواصی است که می توانیم همراه با تابعcudaGetDeviceProperties()  پرس وجو کنیم.

فرض کنید که در حال نوشتن یک برنامه کاربردی هستیم که بستگی به داشتن دقت مضاعف پشتیبانی اعداد اعشاری دارد.  پس از یک مشاوره سریع همرا با ضمیمه Aبرنامه راهنمای NVIDIA CUDA،می دانیم که کارت هایی که دارای قابلیت محاسبه دقیق 1.3یا بالاتر می باشند تا دوعدد اعشار ریاضی را پشتیبانی می کنند.بنابراین برای موفقیت اجرای دو برنامه کاربردی بسیار ذقیق که نوشته ایم، احتیاج داریم حداقل یک دستگاه دارای قابلیت کامپیوتری 1.3 یا بیشتر  پیدا کنیم.

بر اساس انچه که همراه تابعcudaGetDeviceCount() وتابعcudaGetDeviceProperties()  می بینیم، از طریق هر دستگاه می توانیم مجددا شرح دهیم و به دنبال یکی از هر دو که دارای یک نسخه اصلی عالی تر از 1 یا دارای یک نسخه اصلی 1 ونسخه  قدیمی بیش از 1 یا برابر 3 هستیم. از انجا که این رویه معمول تر است  همچنین برای اجرا ازار دهنده تر است. زمان اجرای CUDAیک راه خودکار برای اجرای ان ارائه می دهیم.ابتدا ساختارcudaDeviceProp  را همراه با خواصی که  نیاز داریم دستگاهمان داشته باشد مقداردهی می کنیم.

پس از مقداردهی ساختار cudaDeviceProp،از تابع CudaChooseDevice()عبور می دهیم تا بتواند وسیله ای با محدودیت رضایت که دارای زمان اجرایCUDA  باشد پیدا کند.فراخوانی تابع cudaChooseDevice()شناسه دستگاهی را بر می گرداند که می توانیم سپس از تابع cudaSetDevice()عبور دهیم. از این لحظه به بعد تمام عملیات دستگاه در دستگاهی اجرا خواهد شد که در تابع cudaChooseDevice()پیدا کردیم.

 

سیستم های دارای GPUهای مضاعف درحال حاضر بیش از بیش متداول هستند.برای مثال،خیلی از تراشهای مادربورد شرکتNVIDIAحاوی GPUهایی هستند که دارای CUDA  می باشند.زمانیکه یک پردازنده گرافیکی مجزا را به یکی از سیستم ها می افزاییم ، ناگهان دارای پلت فرمی با چند پردازنده گرافیکی می شوید. علاوه بر این ،تکنولوژی NVIDIA’sSLIتا چند پردازنده گرافیکی گسسته در کنار هم نصب شوند.در هر کدام از این موارد، ممکن است کاربرد استفاده شما دارای یک برتری نسبت به یک GPUدیگر باشد.اگر کاربرد استفاده شما بستگی به ویژگی های خاصGPUویا وابسته به داشتن سریعترین GPUدر سیستم باشد،باید خود را با این APIاشنا کنید زیراکه هیچ تضمینی وجود ندارد که در زمان اجرای CUDAبه عنوان بهترین یا مناسب ترین GPUبرای کاربرد شما انتخاب شود.

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