Abstract
This paper proposes dynamic streamization model execution (DSME), a dynamic vectorization technique for single instruction multiple data (SIMD) engines on multicore architectures. The technique uses stream model as intermediate representation for programs to optimize the combination of computation and memory accesses of SIMD engines in general-purpose (GP) designs. DSME allows the dynamic placement of computations on different cores when they are not in use to utilize multiple SIMD engines. This study also discusses hardware extensions to existing GP processor designs as well as related compiler extensions that use the special hardware components. Our extensive experiments demonstrate that performance gains of DSME can be achieved
چکیده
این مقاله اجرای مدل استریم سازی داینامیک و یک روش برداری کردن (vectorization) داینامیک برای موتورهای چند داده ای تک دستورالعملی بر روی معماری چند هسته ای را مطرح می کند. این روش از مدل استریم به عنوان نماینده واسط برنامه ها به جهت بهینه سازی ترکیب محاسبات و دسترسی حافظه موتور های SIMD در طراحی همه منظوره (GP) ،استفاده می کند.زمانیکه این هسته ها توسط موتور های SIMD چند گانه در حال استفاده نیستند DSME اجازه قرارگیری داینامیک محاسبات بر روی هسته های متفاوت را می دهد. این بررسی همچنین درباره توسعه سخت افزاری در طراحی پردازنده های (GP) همه منظوره موجود و همچنین توسعه کامپایلر مرتبط با مولفه های سخت افزاری بحث می کند .تجربیات گسترده ما اثبات می کند که می توان افزایش عملکرد DSME را بدست آورد.
1- مقدمه
ظهور معماری چند هسته ای (GP) همه منظوره جدید منجر به ایجاد چالش های جدید برای بهره برداری موثر از منابع محاسباتی در دسترس شامل هسته های سخت افزاری و مخصوصا موتور های چند داده ای تک دستورالعمل (SIMD) شد [10]– [8].این موتور ها یک راه قابل دسترس وسیع و نوید بخش برای افزایش کارایی در این معماری های چند هسته ای GP ، تهیه کرده اند. موتور های SIMD کنونی همانند Intel X86 SSE [9] یا IBM Power PC AltiVec [8] می توانند بطور مستقیم توسط دستورالعمل های اسمبلی (زبان ماشین) یا بطور غیرمستقیم توسط بردارسازی اتوماتیک برنامه ریزی شوند. هرچند هیچ کدام از اینها به علت موارد زیر اجرای رضایت بخشی ندارند [8]: 1( طبیعت رجیستر به رجیستر ، دستورالعمل های SIMD که نیازمند سازماندهی مجدد عملگرهای برداری برای پردازش بردار مناسب می باشد. 2( محدودیت سیستم حافظه SIMD همانند دسترسی به حافظه بصورت مرتب شده [18]. راه حل های کنونی شامل دستورالعمل های پشتیبان برای موتور های SIMD است که رایج ترین منابع سربار برنامه نویسی SIMD می باشد…