پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای پژوهش کامل در حوزه کامپیوتر و IT میباشد و در 7 فصل تنظیم شده است.این پروژه با معرفی واحد پردازش گرافیکی (GPU) به پیاده سازی الگوریتم موازی پرداخته است. شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.پروژه بصورت فایل قابل ویرایش ورد(WORD) در 124 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.چکیدهدر سال های اخیر، افزایش روز افزون عملکرد کارت های گرافیکی، محققین را به فکر بهره گیری از توان پردازشی آنها در کاربردهای غیر گرافیکی انداخته است. درهمین راستا شاخه جدیدی در علوم کامپیوتر به نام محاسبات با اهداف همه منظوره روی واحد GPU ایجاد شده است ، هدف فعالان این عرصه بهره گیری از کارت گرافیک به عنوان یک کمک پردازنده محاسباتی در برنامه های غیرگرافیکی و برنامه های عمومی است.ازاین رو از صنعت محاسباتی گرفته تا محاسبات موازی دچار تغییرات گسترده ای شده وعملیات انتقال تقریبا تمام كامپیوترهای مصرف کننده سال 2010 همراه با پردازنده های چند هسته ای صورت گرفته است صنعت رایانه ای در سراشیبى تند انقلاب محاسباتی موازی قرار دارد ،نتیجه اینکه در پی آن، تقریبا هر برنامه نویس مشتاق در آن نیاز به آموزش برنامه نویسی موازی دارد تا بتواند در علوم کامپیوتری به طور کامل موثر واقع شود. و در نتیجه CUDA C NVIDIA تا کنون به عنوان یکی از موفق ترین زبانهای عمل كرده است كه تا به حال برای محاسبات موازی طراحی شده است. در این پایان نامه، ضمن بیان مقدمه ای از CUDA، تعدادی از دستورات زبان NVIDIA CUDA C معرفی خواهد شد.واژه های کلیدی:کارت های گرافیکی،NVIDIA CUDA C، برنامه نویسی موازی،GPU، کودافهرست مطالبفصل اول مقدمه1-1- واحد پردازش گرافیکی.. 21-2- مقایسه توانایی هایGPU باCPU.. 31-3- مقایسه سخت افزار GPU با CPU.. 61-4- فناوری های ATI و NVIDIA.. 7فصل دوم محاسباتGPU2-1- تکامل محاسبات GPU.. 142-2- توسعه فن اوری GPU.. 142-3-GPU های اولیه. 152-4- محاسبات یکپارچه و GPU ها162-5- سیتم های محاسبات GPU.. 172-6- اکوسیستم محاسبات GPU.. 17فصل سوم محاسبات multi-GPU3-1- معماری محاسباتی تسلا.. 203-2- چند پردازندههای جریانی.. 203-3- حافظه های GPU.. 203-4- نمونه SIMT. 223-5- معماری مقیاس پذیر کودا223-5-1- معماری دستگاه کودا223-5-2- تردها، بلاک ها و گریدها: تطبیق الگوریتم ها با مدل کودا233-5-3- کاربردهای کودا263-5-4- معماری مجموعه دستور و اجرا نخ های موازی.. 333-5-5- معماری حافظه کودا353-5-6- قابلیت محاسباتی.. 363-5-7- مدل برنامه نویسی کودا373-5-8- یک مدل برنامه نویسی ناهمگن.. 383-5-9- پشته نرم افزاری کودا413-5-10- سازمان نخ ها413-5-11- CUDA C.. 433-5-12- کامپایل یک برنامه کودا463-5-13- اشکال زدایی یک برنامه کودا463-5-14- افزایش کارایی.. 473-6- نگاشت به معماری تسلا.. 483-7- پشتیبانی ممیز شناور. 483-8- سیستم های محاسباتی NVIDIA Tesla S1070. 493-9- معماری محاسبه فرمی.. 503-9-1- سلسله مراتب حافظه کش.... 513-9-2- حافظه ECC.. 523-9-3- چند پردازندههای جریانی.. 523-10- برنامه نویسی multi-GPU.. 53فصل چهارم پیاده سازی پروژه4ـ1ـ اهداف فصل.. 554ـ2ـمحیط توسعه. 554ـ2ـ1ـ پردازنده های گرافیکی فعال شده CUDA.. 554ـ2ـ2ـ دستگاه درایور NVIDIA.. 574ـ2ـ3ـ کیت ابزار توسعه CUDA.. 57فصل پنجم آشنایی با CUDA C5ـ1ـ اهداف فصل.. 625ـ2ـ اولین برنامه. 625-2-1-HELLO, WORLD.. 635ـ2ـ2ـ فرمان هسته ای.. 635ـ3ـ اولین برنامه دستگاه های جستجوگر. 685ـ4ـ خواص کاربردی دستگاه. 71فصل ششم برنامه نویسی موازی درCUDA C6ـ1ـ اهداف این فصل.. 756ـ2ـ برنامه نویسی CUDA موازی.. 75فصل هفتم تعاون رشته ای7ـ1ـ اهداف فصل.. 817ـ2ـ تقسیم بلوکهای موازی.. 817ـ2ـ1 مجموع برداری: ردوکس.... 827ـ2ـ2 موج دار کردنGPU با استفاده از رشته ها887ـ3 حافظه اشتراکی و همزمانسازی.. 947ـ3ـ1 ضرب نقطه ای.. 957ـ3ـ2 بیت مپ حافظه مشترک... 106نتیجه گیری.. 110فهرست منابع.. 112فهرست شکل هاشکل 1- 1 - مقایسه توان پردازشی خام پردازندهگرافیکی با پردازندهمرکزی.. 3شکل1-2- مقایسه پهنای باند GPUو CPU.. 4شکل 1- 3- نمودار مقایسه سرعت GPUها و CPUها در بدست اوردن پسورد فایل های RAR.. 6شکل 1- 4- مقایسه سخت افزار GPUو CPU.. 7شکل 1- 5- مدل تخصیص ترانزیستور برای GPUو CPU.. 7جدول2-1- نقطه عطف توسعه تکنولوژی GPUها NVIDIA.. 14شکل3- 1- معماری دستگاه کودا23شکل3-2- گریدها، بلاک ها و تردها26شکل3-3 - کامپایل JITو هدف گیری دستگاه یک برنامه کاربردی کودا34شکل3- 4- مثالی از توزیع بلاک ها روی GPUهای با اندازه متفاوت.. 35شکل3- 5- فضاهای حافظه دستگاه کودا و مکان فیزکی انها روی دستگاه. 35شکل3- 6- سلسله مراتب حافظه کودا در ارتباط با تردهای کرنل.. 36شکل3- 7- پایپلاین گرافیکی.. 38شکل3- 8- مثال اجرا ناهمگن.. 39شکل3- 9- جریان کنترل پایه ای کودا40شکل3- 10- پشته نرم افزاری کودا41شکل3- 11- مدل اجرایی یک برنامه کودا با سازمان نخ.. 43شکل3- 12- معماری سیستم محاسباتی NVIDIA Tesla S1070. 49شکل3- 13- پیکربندی کامل محاسباتی S1070. 50شکل3- 14- معماری محاسبات GPUبا 512 هسته پردازنده کودا51شکل3- 15- چند پردازندهای جریانی فرمی.. 53شکل 3- 16- دو شیوه ممکن برای برنامه ای کردن GPUها (a) ترتیبی (b) چند نخی.. 54شکل4ـ1 پردازنده های گرافیکی فعال شده با CUDA.. 56شکل 4ـ2صفحه دانلود CUDA.. 58جدول5-1 خواص دستگاه با CUDA.. 69شکل6ـ1: جمع دوبردار. 76شکل 7ـ1 ترتیب دو بعدی مجموعه ای از بلوک ها و رشته ها و رشته های صفر.85شکل 7ـ2 یک سلسله مراتب دو بعدی ازبلوک ها و رشته های مورد استفاده در پردازش یک تصویر48 * 32 پیکسلی با استفاده از یک رشته در هر پیکسل.. 91شکل 7ـ3 ثصویری از یک مثال موجGPU.. 94شکل 7ـ4 یک مرحله از کاهش جمع.. 99شکل 7ـ5 تصویر بعد از اضافه کردن همزمانسازی مناسب.109
پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای
پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای پژوهش کامل در حوزه کامپیوتر و IT میباشد و در 7 فصل تنظیم شده است.این پروژه با معرفی واحد پردازش گرافیکی (GPU) به پیاده سازی الگوریتم موازی پرداخته است. شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.پروژه بصورت فایل قابل ویرایش ورد(WORD) در 124 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.چکیدهدر سال های اخیر، افزایش روز افزون عملکرد کارت های گرافیکی، محققین را به فکر بهره گیری از توان پردازشی آنها در کاربردهای غیر گرافیکی انداخته است. درهمین راستا شاخه جدیدی در علوم کامپیوتر به نام محاسبات با اهداف همه منظوره روی واحد GPU ایجاد شده است ، هدف فعالان این عرصه بهره گیری از کارت گرافیک به عنوان یک کمک پردازنده محاسباتی در برنامه های غیرگرافیکی و برنامه های عمومی است.ازاین رو از صنعت محاسباتی گرفته تا محاسبات موازی دچار تغییرات گسترده ای شده وعملیات انتقال تقریبا تمام كامپیوترهای مصرف کننده سال 2010 همراه با پردازنده های چند هسته ای صورت گرفته است صنعت رایانه ای در سراشیبى تند انقلاب محاسباتی موازی قرار دارد ،نتیجه اینکه در پی آن، تقریبا هر برنامه نویس مشتاق در آن نیاز به آموزش برنامه نویسی موازی دارد تا بتواند در علوم کامپیوتری به طور کامل موثر واقع شود. و در نتیجه CUDA C NVIDIA تا کنون به عنوان یکی از موفق ترین زبانهای عمل كرده است كه تا به حال برای محاسبات موازی طراحی شده است. در این پایان نامه، ضمن بیان مقدمه ای از CUDA، تعدادی از دستورات زبان NVIDIA CUDA C معرفی خواهد شد.واژه های کلیدی:کارت های گرافیکی،NVIDIA CUDA C، برنامه نویسی موازی،GPU، کودافهرست مطالبفصل اول مقدمه1-1- واحد پردازش گرافیکی.. 21-2- مقایسه توانایی هایGPU باCPU.. 31-3- مقایسه سخت افزار GPU با CPU.. 61-4- فناوری های ATI و NVIDIA.. 7فصل دوم محاسباتGPU2-1- تکامل محاسبات GPU.. 142-2- توسعه فن اوری GPU.. 142-3-GPU های اولیه. 152-4- محاسبات یکپارچه و GPU ها162-5- سیتم های محاسبات GPU.. 172-6- اکوسیستم محاسبات GPU.. 17فصل سوم محاسبات multi-GPU3-1- معماری محاسباتی تسلا.. 203-2- چند پردازندههای جریانی.. 203-3- حافظه های GPU.. 203-4- نمونه SIMT. 223-5- معماری مقیاس پذیر کودا223-5-1- معماری دستگاه کودا223-5-2- تردها، بلاک ها و گریدها: تطبیق الگوریتم ها با مدل کودا233-5-3- کاربردهای کودا263-5-4- معماری مجموعه دستور و اجرا نخ های موازی.. 333-5-5- معماری حافظه کودا353-5-6- قابلیت محاسباتی.. 363-5-7- مدل برنامه نویسی کودا373-5-8- یک مدل برنامه نویسی ناهمگن.. 383-5-9- پشته نرم افزاری کودا413-5-10- سازمان نخ ها413-5-11- CUDA C.. 433-5-12- کامپایل یک برنامه کودا463-5-13- اشکال زدایی یک برنامه کودا463-5-14- افزایش کارایی.. 473-6- نگاشت به معماری تسلا.. 483-7- پشتیبانی ممیز شناور. 483-8- سیستم های محاسباتی NVIDIA Tesla S1070. 493-9- معماری محاسبه فرمی.. 503-9-1- سلسله مراتب حافظه کش.... 513-9-2- حافظه ECC.. 523-9-3- چند پردازندههای جریانی.. 523-10- برنامه نویسی multi-GPU.. 53فصل چهارم پیاده سازی پروژه4ـ1ـ اهداف فصل.. 554ـ2ـمحیط توسعه. 554ـ2ـ1ـ پردازنده های گرافیکی فعال شده CUDA.. 554ـ2ـ2ـ دستگاه درایور NVIDIA.. 574ـ2ـ3ـ کیت ابزار توسعه CUDA.. 57فصل پنجم آشنایی با CUDA C5ـ1ـ اهداف فصل.. 625ـ2ـ اولین برنامه. 625-2-1-HELLO, WORLD.. 635ـ2ـ2ـ فرمان هسته ای.. 635ـ3ـ اولین برنامه دستگاه های جستجوگر. 685ـ4ـ خواص کاربردی دستگاه. 71فصل ششم برنامه نویسی موازی درCUDA C6ـ1ـ اهداف این فصل.. 756ـ2ـ برنامه نویسی CUDA موازی.. 75فصل هفتم تعاون رشته ای7ـ1ـ اهداف فصل.. 817ـ2ـ تقسیم بلوکهای موازی.. 817ـ2ـ1 مجموع برداری: ردوکس.... 827ـ2ـ2 موج دار کردنGPU با استفاده از رشته ها887ـ3 حافظه اشتراکی و همزمانسازی.. 947ـ3ـ1 ضرب نقطه ای.. 957ـ3ـ2 بیت مپ حافظه مشترک... 106نتیجه گیری.. 110فهرست منابع.. 112فهرست شکل هاشکل 1- 1 - مقایسه توان پردازشی خام پردازندهگرافیکی با پردازندهمرکزی.. 3شکل1-2- مقایسه پهنای باند GPUو CPU.. 4شکل 1- 3- نمودار مقایسه سرعت GPUها و CPUها در بدست اوردن پسورد فایل های RAR.. 6شکل 1- 4- مقایسه سخت افزار GPUو CPU.. 7شکل 1- 5- مدل تخصیص ترانزیستور برای GPUو CPU.. 7جدول2-1- نقطه عطف توسعه تکنولوژی GPUها NVIDIA.. 14شکل3- 1- معماری دستگاه کودا23شکل3-2- گریدها، بلاک ها و تردها26شکل3-3 - کامپایل JITو هدف گیری دستگاه یک برنامه کاربردی کودا34شکل3- 4- مثالی از توزیع بلاک ها روی GPUهای با اندازه متفاوت.. 35شکل3- 5- فضاهای حافظه دستگاه کودا و مکان فیزکی انها روی دستگاه. 35شکل3- 6- سلسله مراتب حافظه کودا در ارتباط با تردهای کرنل.. 36شکل3- 7- پایپلاین گرافیکی.. 38شکل3- 8- مثال اجرا ناهمگن.. 39شکل3- 9- جریان کنترل پایه ای کودا40شکل3- 10- پشته نرم افزاری کودا41شکل3- 11- مدل اجرایی یک برنامه کودا با سازمان نخ.. 43شکل3- 12- معماری سیستم محاسباتی NVIDIA Tesla S1070. 49شکل3- 13- پیکربندی کامل محاسباتی S1070. 50شکل3- 14- معماری محاسبات GPUبا 512 هسته پردازنده کودا51شکل3- 15- چند پردازندهای جریانی فرمی.. 53شکل 3- 16- دو شیوه ممکن برای برنامه ای کردن GPUها (a) ترتیبی (b) چند نخی.. 54شکل4ـ1 پردازنده های گرافیکی فعال شده با CUDA.. 56شکل 4ـ2صفحه دانلود CUDA.. 58جدول5-1 خواص دستگاه با CUDA.. 69شکل6ـ1: جمع دوبردار. 76شکل 7ـ1 ترتیب دو بعدی مجموعه ای از بلوک ها و رشته ها و رشته های صفر.85شکل 7ـ2 یک سلسله مراتب دو بعدی ازبلوک ها و رشته های مورد استفاده در پردازش یک تصویر48 * 32 پیکسلی با استفاده از یک رشته در هر پیکسل.. 91شکل 7ـ3 ثصویری از یک مثال موجGPU.. 94شکل 7ـ4 یک مرحله از کاهش جمع.. 99شکل 7ـ5 تصویر بعد از اضافه کردن همزمانسازی مناسب.109