دوشنبه 30 مهر 1397 | Monday 22 nd of October 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
3-5-4- معماری مجموعه دستور و اجرا نخ های موازی

     هر پردازنده، CPU)یا GPU) معماری مجموعه دستوالعمل خودش را دارد. بطور کلیISA  دستوالعمل های ماشین محلی، نوع های داده، رجیسترها، معماری حافظه، مدهای ادرس دهی و دستگیرههای اجرا و وقفه را تعریف می کند. وقتی که یک برنامه کامپایل می شود برای کار کردن باید به یک ISAمشخص نسبت داده شود. تعداد ISAهای مشترک استفاده شده در خصوص کدCPUنسبتا محدود هستند، بنابراین انتخاب ISAمناسب در زمان کامپایل مناسب است. اما در GPUاین کار به این اندازه عملی نیست. حتی خانواده محصولاتی که از کودا پشتیبانی می کنند دارای چندین معماری هستند. اینکه بتوانیم برنامه کودایی تعریف کنیم که بتواند در هر نسخه ای از معماری کار کند خیلی سخت تر است. هر چند که این امر امکان پذیر است اما اینکار باعث می شود که ویژگی های جدید معماری های نسل بعدی بدون استفاده بمانند در اینجا است که PTXگامی مهم در این زمینه برمی دارد.

PTXماشین مجازی سطح پایین و ISAخودش را تعریف می کند. با این شیوه، PTXمدل برنامه نویسی و مجموعه دستور پایدار و ایستایی فراهم می کند که می تواند بدون توجه به تکامل نسل های معماری GPUبدون تغییر بماند. وقتی که یک برنامه کودا کامپایل می شود به دستورات PTXتبدیل می شود.  ترجمه و بهینه سازی دستورات PTXبه دستورات محلی سخت افزار مقصد در زمان اجرا است. شکل 3-3 یک تصویر از ان را نشان می دهد که به ان کامپایل دقیقا در زمان اجرا[1] و هدف گیری دستگاه می گویند.

شکل3-3 - کامپایل JITو هدف گیری دستگاه یک برنامه کاربردی کودا

این نوع استراتژی کامپایل و هدف گیری مزایا زیادی دارد. از جمله اینکه:

- مدل برنامه نویسی و ISAپایداری می توانند بوسیله نسل ها و اندازههای مختلف GPUها استفاده شوند. شکل 3-4 مثالی از ان را نشان می دهد.

- توزیع بلاک های نخ تا زمان اجرا مشخص نمی شود بنابراین لازم نیست که برنامه نویس بداتد که به چه شیوه ای تعداد هسته های زیادی در دسترس قرارخواهند گرفت.

- به این علت که PTX ISAمستقل از ماشین است، هدف گیری مناسبی برای کامپایلرهای مختلف و رابطی مشترک برای مترجمان بهینه سازی PTXبه GPUاست.

- توسعه کامپایلرهای کارا و مترجمان PTXبه GPUمی توانند تا زمانی که هر دو با PTXسازگار هستند بصورت مستقل انجام شوند.

 - کامپایل به کد دستگاه دودیی برای برنامه های کاربردی کودا امکان پذیر است.

شکل3- 4- مثالی از توزیع بلاک ها روی GPUهای با اندازه متفاوت



[1]just-in-time (JIT)

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