هدکشناد یسدنهم و ینف
یشزومآ هورگ قبر
ترویپماک و
دشرا یسانشراک هجرد تفایرد یارب همان نایاپ
یرامعم شیارگ رتویپماک یسدنهم هتشر رد س
متسی یرتویپماک یاه
هب ی هن زاس ی ور رب هکبش ی
چ ی پ ( فارگ هدنزادرپ دحاو ) NoC
ی ک ی
( سرتسد دوبهب ظاحل زا ، ) GPU
ی ( ود حطس ناهن هظفاح هب L2
cache )
رگشهوژپ :
یلیبدرا یرلگیب کمایس
امنهار داتسا :
ملاغ رتکد نیتف عراز اضر
رواشم داتسا :
رهم 98
ناونع و :روآدیدپ مان هب
ی هن زاس ی ور رب هکبش ی
چ ی پ ( دحاو )NoC فارگ هدنزادرپ ی
ک ی ( سرتسد دوبهب ظاحل زا ، )GPU ی
حطس ناهن هظفاح هب
L2 cache( ود )
/ یلیبدرا یرلگیب کمایس
داتسا امنهار : ملاغ رتکد
نیتف عراز اضر
خیرات :عافد 3
/ 7 / 98
دادعت حفص :تا 54
.ص
نایاپ هرامش :همان
سدنهم هورگ ی
پماک و قرب ی رتو / 1519198
:هدیکچ یکیفارگ هدنادرپ دحاو:فده
یارجا اب یزاوم هتشر نارازه ییلااب یراک یزاوم هب
رد س یم هظفاح حط هتنشر نیا .دسر
رونر هنب انه
هیارآ هتشر زا ییاه یم ارجا مه اب هک ییاه
هشوخ رد دنوش یم میسقت اه
هداد ینلحم عیزوت لیلد هب .دنوش هنشوخ رد انه
هنب زانین ناناتحا انه
هداد لحم یاه دوجوم ی هدنزادرپزیر ناهن هظفاح رد
یاه ینایرج (Streaming Multiprocessor, SM) رتنریب هنشوخ نی رد رواجم
یم یگژیو یا هب هجوت اب .دوش هداد هب یسرتسد داجیا
رد رواجم یاه هشوخ مه یاهSM
عیرس یرکاو ثعاب یا زانین دروم هداد رت
انهSM
و ود حطس ناهن هظفاح هب تبسن یمDRAM
هک یا هب هجوت اب ینچاه .دوش هداد
یاه یلاسرا نرنتنک تانس زا دایز مجح اب هدنننک
یانه
هظفاح (Memory Controler, MC) SM هب
اه یم ماجنا دوش عوضوم یا ندمآ دوجو هب ثعاب
دنچ یکیفارت یوگلا -
هنب - دننا - هنب -
هجیتنرد و دنچ خساپ هکبش رد هاگولگ
یم دوش هب تساوخرد ناسرا شهاک اب . نرتنک
هدننک هدرنک ادیپ شهاک خساپ هکبش یفارت هظفاح یاه
هداد و ریسم زا اه هتسه یبام ماحدزا مک یاه
یم ناسرا یا .دنوش
شور :شهوژپ یسانش نرتنک دحاو ی داجیا اب
هشوخ نورد ندوب یلحم هب هاگآ هدننک هشوخ رد یا
ینم انه ردآ ناونت هداد
نقف یانه
باث ناهن هظفاح یندناوخ ت
هرااش و هشوخ یاهSM
هطوبرم ار هگن درک یراد تسج اب ی حطس ناهن هظفاح نادقف نامز رد و
و نیا ونج
رد هداد ندوب دوجوم رور رد و تسیل هشوخ مهSM
هظفاح هب ناسرا یاج هب تساوخرد رگید یا هنب رتلااب حوطس یاه
روانجمSM
یم ناسرا هداد یاراد .دوش
هتفای یا رد:اه زا شهوژپ 15
رااچنب زا یراک راب CUDA SDK , ISPASS2009 یاه
RODINIA و ندم یبایزرا روظنم هب
.تسا هدش هدافتسا یداهنریپ هیبش
زاس هدایپ روظنم هب هدش هدافتسا رااچنب زا هدافتسا و یداهنریپ یرااعم یزاس
هیبش اه GPGPU- زاس
هیبش یا زا هدافتسا اب .تسا Sim باختنا و زاس
هکبش ریخات یگنایم :مهم یگژیو هس و ود حطس ناهن هظفاح هب یسرتسد یگنایم
تیاهنرد یگنایم لکیس دحاو رد هدش ماجنا اروتسد دادعت (IPC)
شهاک دهاش 5
/ 26
% ات رثکادح(
12 / 51
% هب یسرتسد ریخات یگنایم )
شهاک و هکبش 82
/ 16
% ات رثکادح(
03 / 46
% اهن هظفاح هب رتسد یگنایم ) شیازفا تیاهن رد و ود حطس ن
18 / 18
% ات رثکادح(
1 / 58
% )
اروتسد دادعت یگنایم هدش لکیس دحاو رد هدش ماجنا
.میا
هجیتن :یریگ داد نارن شهوژپ یا زا لراح جیاتن تسا
هظفاح نادقف عوقو نامز رد هک یا رب هولاع هدش هئارا یداهنریپ شور اب هک
زا هداد یرکاو و ی حطس ناهن هظفاح هب یسرتسد هظفاح زا رتعیرس رواجم یاهSM
یم قافتا رتلااب حوطس یاه هداد ینچاه دتفا
هب اه
نرتنک خساپ هکبش ماحدزارپ ریسم یاج هدننک
ریسم زا هظفاح یاه یاه
مک هتسه یبام ماحدزا یا
یکیفارت یوگلا هجیتنرد و هدش یرکاو
دنچ - هب - دنا - هب - دنچ یکیفارت یوگلا هب دنچ -
هب - یدبت دنچ ل هک هدش عوضوم یا هکبش یور رب رارف شهاک ثعاب
یور رب هشارت
(NoC) ود حطس ناهن هظفاح هب یسرتسد شهاک و او رد هدش ماجنا اروتسد دادعت تیاهن رد .تسا هدش
یکیفارگ هدنزادرپ لکیس دح
هاه .تسا هدرک ادیپ شیازفا هروظنم
هژاو :یدیلک یاه GPGPU, NoC, Memory Controler, GPGPU-sim, Instruction Per Cycle (IPC) , SM
1 فده و همدقم-
1-1 - همدقم
یکیفارگ هدنزادرپ دحاو
(GPU)
تکرش طسوت ادتبا هک
NVIDIA
لاس رد 1999 ارتخا ع نیرتریگارف ،دش هدنزادرپ
یریس زاین لیلد هب .تسا زورما هب ات یزاوم هبش یاه کیفارگ یارب ریذپان
یگدنز گنردلاب و )یعقاو( 1
هدنزادرپ ،2
یاه
هب یکیفارگ دحاو
یاه زادرپ یش ییاراک اب یب روانشزیمم
هقباس همانرب و تفای لماکت ریذپ ه
ا دن هدنزادرپ . یکیفارگ یاه
ظاحل زا یدایز دودح ات یزورما یزکرم یاه هدنزادرپ زا هظفاح دناب یانهپ و یتابساحم هدزاب
(CPU)
هتفر رتارف هک دنا
هدنزادرپ هب ار اهنآ هدیا یاه
همانرب هب نداد باتش روظنم هب یلآ یاه
ددعتم هداد - هدرک لیدبت یزاوم .تسا
هدنزادرپ یاه
یکیفارگ لکش(
1 - 1 )تسار اراد ی هتسه باسح یاهدحاو و اه رایسب قطنم و
رتشیب ی تبسن یزکرم یاه هدنزادرپ هب
لکش(
1 - 1 )پچ یم اذل .دنشاب هداد یارجا
یور رب یزاوم یاه هدنزادرپ
یاراد یکیفارگ یاه رتشیب هدزاب
ی هب تبسن
هدنزادرپ یم یزکرم یاه دشاب
.
لکش 1 - 1 - هتسه دادعت توافت یکیفارگ هدنزادرپ و یزکرم هدنزادرپ یشزادرپ یاه
[ 1 ]
افتسا یارب شلات یارجا روظنم هب یکیفارگ هدنزادرپ دحاو زا هد
همانرب لاس زا یکیفارگریغ یاه 2003
ماجنا لاح رد
1Life-Like
2Real-Time
2 هنیهب
یزاس ود حطس ناهن هظفاح هب یسرتسد شهاک و یکیفارگ هدنزادرپ دحاوNoC
.تسا یاه نابز زا هدافتسا اب هیاس
1یا دننام لااب حطس
DirectX
،
OpenGL
و متیروگلا ،CG
هداد یاه -
یددعتم یزاوم
هدنزادرپ هب ارجا روظنم هب هدش لقتنم یلیفارگ یاه
دننام یلئاسم .دنا هب
نیئتورپ نتخیمآ مه هنیزگ ،2
تمیق یاه یراذگ
3ماهس تساوخرد ، یاه
یزاسزاب و SQL
لباق ییاراک عیرست هب MRI
هجوت هدنزادرپ یور رب یا ادیپ تسد یکیفارگ یاه
هدرک .دنا شلات نیا هیلوا یاه
همانرب طبار زا هک همانرب یسیون
یکیفارگ یاه همه تابساحم یارجا روظنم هب 4
هروظنم
یم هدافتسا همانرب هب ،دندرک
5 یاه
GPGPU
.دندوب فورعم
همادا رد
NVIDIA
درک یفرعم ار مهم و هدمع یژولونکت ود کی یکیفارگ و یتابساحم یرامعم .
هچراپ و G80
تخس یرامعم مرن و یرازفا
یرازفا هب فورعم
CUDA6
هدنزادرپ هب هک یم ار ناکما نیا یکیفارگ
طسوت هک دهد
همانرب همانرب ینوگانوگ یلااب حطس یاه .دوش یسیون
زا هدافتسا زا یدیدج هویش یژولونکت ود نیا ،مه رانک رد
هدنزادرپ همانرب یاج هب .دنداد هئارا ار یکیفارگ یاه دحاو یسیون
هب یصاصتخا یکیفارگ یاه طبار هلیسو
یاه
همانرب همانرب یسیون همانرب ،یکیفارگ یاه
همانرب تسا رداق سیون نابز هب ییاه
همانرب اب C
یندوزفا یاه و هتشون CUDA
همه یزاوم میظع هدنزادرپ دهد رارق فده ار هروظنم
. همانرب دیدج هویش نیا هب ،یکیفارگ هدنزادرپ یسیون
"
بساحم ه اب
زا هدافتسا ارگ هدنزادرپ
"یکیف همانرب زا ینابیتشپ ییاناوت هک تسا هدش قلاطا 7
یاه نابز زا ینابیتشپ ،ددعتم یاه
همانرب همانرب ییادتبا لدم زا یلماک کیکفت و هدرتسگ یسیون هدنزادرپ یسیون
همه یکیفارگ یاه .دنراد ار هروظنم
[ 2 ]
1-2 - شیپ هنیمز
GPGPU
یا هتشر دنچ روتسد کت یرامعم اه یم راک هب ار8
هب اب و دنرب یزاوم یریگراک
رااک هتاشر حطاس رد ی
9یا
مه ثعاب یم هظفاح هب یسرتسد ریخات یناشوپ
هامانرب رثکا .دنوش یااه
GPGPU
د تاایلمع یداایز داداعت هاب یاسرتس
یم دیلوت هظفاح ار راشف هک دننک
تلااصتا و هکبش هظفاح متسیس یور رب یم شیازفا یلخاد
یور راب هایکت افراص .دهد
یزاوم ک هتشر حطس رد یرا یا
یمن لماک روط هب تاایلمع هاجیتن رد و داهد شاشوپ ار هاظفاح هب یسرتسد ریخات دناوت
یم یکیفارگ هدنزادرپ ییاراک یارب یدیدش هاگولگ هب لیدبت هظفاح رااک دنچره .دوش
ندراک هانیهب یاراب یاناوارف یااه
هک هکبش ریخات هب یرتمک دادعت یلو ،تسا هدش هئارا هظفاح متسیس ریخات رد ار یمهم شقن
هاظفاح هب یسرتسد یلک
یم افیا هدرک هراشا دنک دنا
[ . 3 ]
همانرب لدم یسیون
هدنزادرپ یراک هورگ کی یراذگراب لماش یکیفارگ یاه هب هظفاح زا10
یناایرج یااه هدنزادرپ زا11
قیرط هشارت یور رب هکبش و هظفاح هب یکیفارگ هدنزادرپ هکبش هتاشر دانچ روتاسد کت تروص هب یراکراب .تسا12
یا
یام هتاشون و هداش هداد تاشگزاب هاظفاح هب هکبش ود نیا قیرط زا سپس و هدش شزادرپ اایقم هاب یگتاسب .دواش
یراکراب
، 13
یم رارکت اررکم ،یراک هورگ شزادرپ لیمکت نامز ات لحارم نیا .دنوش
1Shading Language
2Protein Folding
3Stock Option Pricing
4Graphics APIs
5General Purpose Graphic Processing Unit
6Compute Unified Device Architecture
7GPU Computing
8SIMT, Single Instruction Multiple Thread
9TLP, Thread Level Parallelism
10Work Group
11SM, Streaming Multiprocessor
12NoC, Network on Chip
13Workload
فده و همدقم
3
شیازفا راظتنا هب هجوتاب یاه لسن هئارا اب اه SM
هدانزادرپ دایدج هاعومجم هزادانا شیازافا و یاکیفارگ یااه
،هداد
داناب یاانهپ شیازافا .میتاسه اهارجا زا لدم نیا زا ینابیتشپ روظنم هب هشارت یور رب هکبش دناب یانهپ شیازفا دنمزاین رد شوااک دانمزاین نیارباانب ،داش دهوخ هنیزه شیازفا نینچمه و ایوپ و اتسیا یفرصم ناوت شیازفا ثعاب اراط
ییااه
.دنتسه هنیهب هنیزه و ناوت ظاحل زا هک میتسه
1-3 - نایاپ فادها همان
هب اب همانرب لدم یریگراک هتسد یزاوم یسیون
یا - نامزمه دحاو ،1
زادرپ یاه دن
هامه یکیفارگ ه داداعت لاوامعم هرواظنم
کولب هتشر زا یدایز مهب و هدرک ارجا ار لقتسم یاه
تخس ناهن هظفاح یگتسویپ یرازفا
یامن ینابیتشپ ار دانک
لاصاح .
رصحنم یکیفارت یوگلا یگژیو نیا هب
دنچ مان هب یدرف -
هب - کدنا - هب -
2دنچ هب ،تسا نیبام افرص طابترا هک یروط اهSM
لرتنک و هدننک هظفاح یاه هدنزادرپ رد هشارت یور رب هکبش .دراد دوجو3
همه یکیفارگ یاه هکباش لماش لاومعم هروظنم
روظنم هب تساوخرد هتسب لاسرا
هتسه زا نتشون و ندناوخ تساوخرد یاه هدننک لرتنک هب اه
خساپ هکبش و هظفاح یاه
هتسب لاسرا روظنم هب .تسا سکع تهج رد نتشون و ندناوخ هب خساپ یاه
کدنا کیفارت -
هاب - لراتنک زا یلااسرا دانچ
هدننک هتسه هب هظفاح یاه یم خساپ هکبش رد یدیدش ماحدزا داجیا ثعاب اه
دوش . ثاعاب هکباش رد هاگولگ نیا تیاهنرد
یم هظفاح هب یسرتسد ریخات شیازفا نایز ریثات و دوش
.دراد هدنزادرپ ییاراک یور رب یروآ ناایاپ نایا رد اام فده
هامان
هجیتن رد و ود حطس ناهن هظفاح هب یسرتسد شهاک هدننک لرتنک زا یلاسرا کیفارت شهاک
هاب هاظفاح یااه ااهSM
تسا رت شهاک ثعاب هک خساپ هکبش هاگولگ رد کیفا
هدش هک رد هجیتن بجوم هاظفاح هاب یسرتسد ریخات شهاک یام
و دوش تیاهن رد ثعاب
یکیفارگ هدنزادرپ ییاراک دوبهب یم
.دوش
1-4 - نایاپ شراگن راتخاس همان
نایاپ نیا رد همان
6 هدانزادرپ هایلوا میهاافم هب مود لصف رد .تسا هدش میظنت لصف یاکیفارگ یااه
هامه و هرواظنم
همادا رد و هدش هتخادرپ اهنآ یرامعم هدانزادرپ یور راب هداش ماجنا یاه شهوژپ هنیشیپ
هامه یاکیفارگ یااه هرواظنم
راتخاس و هدش هداد هئارا هدیا حیرشت هب موس لصف رد .تسا هدش یفرعم رد و تاسا هداش هاتخادرپ یداهنشیپ یرامعم
هیبش جیاتن مراهچ لصف مرن رد یزاس
رازفا
GPGPU-Sim
هجیتن مجنپ لصف رد .تسا هدش هدروآ هائارا نینچمه و یریگ
مشچ داهنشیپ و زادنا راک یارب ییاه
.تسا هدش نایب هدنیآ یاه
1BSP, Bulk Synchronous Parallel
2Many-To-Few-To-Many
3MC, Memory Controller
2 - نابم ی پ و ی ش ی هن قحت ی ق
2-1 - همدقم
هدنزادرپ هیلوا میهافم حیرشت لصف نیا فده یرامعم و یکیفارگ یاه
نآ اه
، ،هدش ماجنا تاعلاطم و هچخیرات
هدنزادرپ یور رب هک یتاقیقحت اه
یکیفارگ ی صوصخ هب
رد شزادرپ هنیمز همه یاه
هروظنم
(GPGPU)
هدش ماجنا -یم
دشاب .
یریس یاضاقت هب هجوت اب کیفارگ یارب رازاب ریذپان
هس یاه یاکیفارگ هدانزادرپ داحاو ،یاعقاو و لااب تایئزج اب یدعب
همانرب ریذپ ، هتسه دنچ هدنزادرپ کی هب لیدبت دنچ یا
هتشر یا اساحم میظع ناوت اب هارمه یزاوم تدش هب یاانهپ و یتاب
هدش دایز رایسب هظفاح دناب هک
لکش رد 2
- 1 لکش و 2 - 2 هداد نااشن یزاکرم هدانزادرپ دحاو اب اه هدنزادرپ نیا توافت
.تسا هدش
لکش 2 - 1 - یکیفارگ هدنزادرپ و یزکرم هدنزادرپ روانش زیمم تابساحم ماجنا توافت رادومن [
4 ]
6 هنیهب
یزاس ود حطس ناهن هظفاح هب یسرتسد شهاک و یکیفارگ هدنزادرپ دحاوNoC
لکش 2 - 2 - ناشن رادومن یانهپ رثکادح هدنهد
یکیفارگ هدنزادرپ و یزکرم هدنزادرپ لاکیروئت دناب [
4 ]
دحاو هک تسا نیا یکیفارگ هدنزادرپ دحاو و یزکرم هدنزادرپ دحاو نیبام روانش زیمم ییاناوت رد توافت دوجو لیلد
یلصا فیاظو هب هجوت اب یکیفارگ هدنزادرپ دوخ
رااک لاابق رد هاک تداش ااب تاباساحم مااجنا رد ،دراد یاکیفارگ یااه
ب و لااب رایسب یتابساحم زا یداایز دادعت هک تسا هدش یحارط یلکش هب نیاربانب و دراد یرایسب صصخت ،یزاوم تدش ه
هداد شزادرپ فقو اه روتسیزنارت یم
دنشاب لکاش رد کیتاماش ترواص هاب هاک نآ نایرج لرتنک و هداد هریخذ ات 2
- 3
هدروآ .تسا هدش
لکش 2 - 3 - ناشن یکیفارگ هدنزادرپ و یزکرم هدنزادرپ هب هدش هداد صاصتخا عبانم هوحن هدنهد [
4 ]
هب لکش قیقد رت
، یکیفارگ هدنزادرپ دحاو یم هک یلئاسم یارب
هداد تاباساحم لکش هب دنناوت ، دنواش ناایب یزاوام-
یم بسانم رایسب ساحم تایلمع خرن( یتابساحم تدش یاراد هک یلئاسم یارب صوصخب دشاب
)هاظفاح تاایلمع هاب یتاب
.دنتسه لااب یام اراجا هداد زا رصنع ره یارب یناسکی همانرب هک نیا لیلد هب
ناایرج لراتنک یاراب یراتمک زااین ،دواش
یم ارجا یرایسب هداد رصانع یور رب همانرب نیا هک نیا لیلد هب و دراد دوجو هدیچیپ دوش
لاااب یتابساحم تدش یاراد و
یم ،تسا ریخات ناوت
نیانچ زا هدافتاسا ااب هامادا رد .داد شهااک هداد هرایخذ یاج هب تابساحم اب ار هظفاح یسرتسد
هدنزادرپ یگژیو
،یکیفارگ یاه
یزاوم هداد شزادرپ زا هدافتسا اب متیروگلا زا یرایسب رد
شزادرپ هنیمز زا جراخ یاه یاه
،یکیفارگ زا
هیبش و یمومع لانگیس شزادرپ تابساحم ات کیزیف یزاس
تاسیز تاباساحم و یلام هداد عیراست یاسانش
هدش .دنا
2-2 - همانرب لدم یسیون
لاس رد ادتباCUDA
2006 طسوت
NVIDIA
هامانرب یرامعم کی .دش یفرعم هامه یزاوام یاسیون
زا هاک هرواظنم
هدنزادرپ یزاوم تابساحم یاهروتوم یاکیفارگ یاه
NVIDIA
لکاش هاب هدایچیپ یتاباساحم لئااسم لاح رواظنم هاب
ترثوم یام هدافتسا یزکرم هدنزادرپ دحاو هب تبسن یر دانک
،یافرعم ناامز رد . هامانرب ناابز زا ااهنتCUDA
یاسیون
C
یم ینابیتشپ نوانکا .درک
ناابز زاCUDA
هامانرب یااه یاسیون
FORTRAN
،
C++
، ،JAVA Python
ینابیتاشپ ... و
یم .دنک
همانرب لدم یسیون
هسCUDA
موهفم هلسلس یدیلک هورگ بتارم
هتشر یاه هظفاح ،اه
مااگمه و یکارتشا یاه یزااس
عناوم یم اراد ار19
نیا .دشاب میهافم
هنوزفا ناونع هب نابز یاه
همانرب یاه همانرب رتسد رد یسیون
سیون [.دنراد رارق اه 5
]
هب لکش قیقد رت مرن یرامعم کیCUDA
یرازفا تخس و هدنادرپ هب هک تسا یرازفا یکیفارگ یاه
NVIDIA
تیلباق
همانرب یارجا ناابز هاب هداش هتاشون یاه
یااه ،C
،C++
Fortran
،
OpenCL
،
Direct Compute
ناابز و ار راگید یااه
یم .دهد
همانرب کی هتسهCUDA
یکیفارگ هدنزادرپ یور رب همانرب ییارجا یاه یم یناوخارف یزاوم تروص هب ار 20
هوحن .دنک
کی یارجا
Kernel
رسارس رد یزاوم تروص هب هعومجم
هتشر زا یا هامانرب .تسا یزاوم یاه
نایا رلیااپماک اای و سیوان
هتشر اه لکش دننام ار 2
- 4 کولب رد هتشر زا ییاه هکبش رد و اه
کولب نیا زا ییاه
21ااه یام یهدنامزااس هدانزادرپ .دانک
همانرب کی یکیفارگ
Kernel
هکبش لکش هب ار هتشر کولب زا یا
یم ناشن اه کوالب لاخاد هتاشر راه .دهد
هانومن ، زا یا
Kernel
ارجا ار یم یاراد و دنک تابث ،همانرب هدنرامش ، کولب لخاد هتشر هسانش
هتشر ره یازا هب یصاصتخا هظفاح ،اه
.تسا یجورخ و یدورو جیاتن و
19Barrier Synchronization
20Kernel
21Grid
8 هنیهب
یزاس ود حطس ناهن هظفاح هب یسرتسد شهاک و یکیفارگ هدنزادرپ دحاوNoC
لکش 2 - 4 - هداد تشاگن اوحن هلسلس رد اه
درپ هظفاح بتارم یکیفارگ هدنزا
[ 6 ]
" کی هتشر کولب
"
هتشر زا یا هتسد مه تروص هب ارجا تیلباق هک تسا ییاه
نامز هاظفاح هلیاسو هاب هاک دانراد ار
ماگمه و یکارتشا یم عناوم یزاس
دوخ کولب هکبش لخاد رد کولب هسانش یاراد کولب ره .دنشاب طابترا رد مه اب دنناوت
کی .تسا هیارآ Grid
شر کولب زا یا هت
هک تسا ییاه
Kernel
یم ارجا ار یناسکی دنک
هک یدورو نداناوخ هاظفاح زا ااه
ماگمه و یرسارس هظفاح رد جیاتن نتشون ،یرسارس یناوخارف نیبام یزاس
یاه
Kernel
مااجنا ار ماه هاب هتاسباو یااه
یم دهد . همانرب شور رد یزاوم یسیون
،CUDA
لکاش هاب هاجوت اب 4
- 2 هاظفاح یاراد هتاشر راه لااقتنا یاراب یاصاصتخا
تابث تایوتحم یناوخارف ،22
عباوت یاه ریغتم و
هیارآ یاه کیتاموتوا یا
.تاساC
هاب یکارتاشا هاظفاح یاراد کوالب راه
هدافتسا روظنم تاطابترا رد
هتشر لخاد متیروگلا رد جیاتن کارتشا و هداد کارتشا ،یا
تایاهن رد .تسا یزاوم یاه
Grid
ماگمه زا دعب اه سارس یزاس
حطس رد یر
Kernel
یم کارتشا هب یرسارس هظفاح یاضف رد ار جیاتن ، .دنراذگ
2-3 - رجا تخس یا یرازفا
هتشر بتارم هلسلس هب اه
هب ارجا روظنم بتارم هلسلس
هدنزادرپ یام تاشاگن یکیفارگ هدنزادرپ لخاد یاه دنواش
. هاب
22Register Spills
لکش دننام 2
- 5 یکیفارگ هدنزادرپ هک تروص نیا هب دنچ ای کی
کی زاGrid Kernel
یم ارجا ار کای و دنک
کای ،SM
هتشر زا کولب دنچ ای هتسه و ار اه
یاه دحاو رگید وCUDA
لخاد ییارجا یاه هتشر ،SM
یم ارجا ار اه کی .دننک
SM
هتشر هتسد رد ار ییاه یاه
32 نامسیر مسا هب ییات یم ارجا ار23
.دننک
لکش 2 - 5 - هداد تشاگن هوحن هلسلس هب اه
بتارم دحاو یشزادرپ یاه
24
2-4 - هظفاح متسیس
هدنزادرپ یکیفارگ یاه لکش دننام
2 - 6 هظفاح یاضف عون ود لماش ابلاغ تاابث ماه زا ادج
هاظفاح و ااه .دنتاسه ااه
هدنزادرپ یام میسقت یرسارس و یلحم هظفاح یاضف هب ار هظفاح یقظنم تروص هب یزورما یکیفارگ یاه یااضف .داننک
ره یازا هب یلحم هظفاح ابلاغ و تسا یصاصتخا تروص هب هتشر
یناکم ناونع هب ااه تاابث تاایوتحم یراداهگن یاراب
یم هدافتسا ،دوش
رد یلاح هک زا یرسارس هظفاح روظنم هب
هداد یاهراتخاس کارتاشا هاب هتاشر نیدنچ نایم رد هک یا
هدش هتشاذگ یم هدافتسا دنا
هدنزادرپ ، هولاع هب .دوش لاومعم یزورما یکیفارگ یاه
کرچ هظفاح کی هدش تیریدم سیون
همانرب هلیسو هب هتشر نیبام یکارتشا یسرتسد هارمه هب سیون
هک ییاه یم ارجا مه اب
25دنوش هدایپ ار یام یزااس .داننک
زا یکی لیلاد همانرب زا یرایسب رد هک تسا نیا یکارتشا ردا یاضف زا ندرک هدافتسا اه
همانرب هداد زا سیوان رد هاک یا
یعم لحارم شزادرپ رد ن
،دراد یسرتسد هب زاین یم علطم
دشاب هداد نیا مامت یراذگراب اب نیاربانب ، هاظفاح لاخاد هاب اه
،اجکی تروص هب یکارتشا یم
تاایلمع هاک یناامز و دراک ینااشوپمه ار هشارت زا جراخ هب ینلاوط یسرتسد ریخات ناوت
ت اب یسرتسد زا تسا ماجنا لاح رد هداد نیا یور رب یتابساحم ماهم .درک یریگشیپ هظفاح هب ینلاوط ریخا
هامه زا رات
تیاب دادعت تبسن یم هک ییاه
دنواش هداد لااقتنا ناامز دحاو رد هشارت زا جراخ هظفاح و یکیفارگ هدنزادرپ نیبام دنناوت
دناب یانهپ(
)DRAM
لمعلاروتسد دادعت تبسن هب یم هک ییاه
.تاسا مک رایسب دنوش ارجا نامز دحاو رد دنناوت هولااع
هدنزادرپ و هشارت زا جراخ هظفاح نیبام هداد لاقتنا روظنم هب هدش هدافتسا یژرنا نیا رب زا رتاشیب رایاسب ،یاکیفارگ یاه
شیازافا ثاعاب شارات لاخاد هظفاح هداد هب یسرتسد نیاربانب .تسا هشارت لخاد هداد هب یسرتسد یارب یفرصم یژرنا
23Warp
24 https://en.wikipedia.org/wiki/Thread_block_(CUDA_programming)
25CTA, Cooperative Thread Array
10 هنیهب
یزاس ود حطس ناهن هظفاح هب یسرتسد شهاک و یکیفارگ هدنزادرپ دحاوNoC
یم یژرنا هریخذ و ییاراک .ددرگ
[ 7 ]
لکش 2 - 6 - هظفاح تایئزج اب هدش لدم یکیفارگ هدنزادرپ ناهن یاه
26
2-5 - تخس رب یرورم یرامعم و رازفا
Fermi
یکیفارگ هدنزادرپ نیلوا لکش قباطم
2 - 8 یرامعم اب
Fermi
اات و روتاسیزنارت دراایلیم هاس اب 512
هتاسه
CUDA
هدایپ .دش یزاس
هتسه ره اراجا هتاشر راه یازا هاب یاکیفارگ هدنزادرپ لکیس ره رد ار حیحص ای و روانش زیمم روتسد کیCUDA
یم دنک . 512 هتسه رد CUDA
16 لماش مادکره هکSM
32 هتسه هدش هتفرگ رارق ،دنتسهCUDA
قبااطم هاک دانا
لکش 2 - 8 نیا مامت 16
هتفرگ رارق ود حطس ناهن کرتشم هظفاح لوح SM
راه هاک دانا لمااشSM
یجنراان تماسق
یدنبنامز دحاو زا لکشتم لاسرا دحاو و27
داحاو زا لکاشتم گنر زبس تمسق و28
گانر یابآ تماسق و یایارجا یااه
زا لکشتم تابث
دحاو نینچمه .تسا اه
GigaThread
ره هب اه کولب ندرک یدنبنامز لوئسم .تساSM
2-5-1-512 هتسه
لااب ییاراک ابCUDA
ره یارادSM
32 هتسه هدنزادرپ ره .تساCUDA
حیحص یددع دحاو یارادCUDA
و باسح قاطنم
داحاو و29
روانشزیمم دادعا طخ لکش هب هک تسا30
31هلول لماک هتاشر دانچ هدانزادرپ کای هبااشم یا
داننامSIMD
لکاش 2 - 7
هدایپ .تسا هدش یزاس
26 http://gpgpu-sim.org/manual/index.php/Main_Page
27Schedule Unit
28Dispatch Unit
29ALU, Aritmatic Logic Unit
30FPU, Floating Point Unit
31Pipline
لکش 2 - 7 - یلخاد یرامعم زا یلک یامن هدنزادرپ
هتشر دنچ یاه یا
[SIMD
6 ]
لکش قباطم 2
- 7 هتسه ره تابث یارادCUDA
و بااسح یااه داحاو و یاصاصتخا هاظفاح و دوخ صوصخم یاه
یرامعم .تسا هریخذ و یبایزاب و قطنم
Fermi
زا روانش زیمم دیدج درادناتسا
IEEE 754-2008
یام هدافتسا دانک
هاک
عمج لمعلاروتسد -
یبیکرت برض
)32
FMA
ود تقد تابساحم ودره یارب ار (
( ربارب د فعاضم تق
33 ) یتقد کت و هاب34
یم راک .درب برض تایلمعFMA
- یم ارجا هلحرم کی رد هک تسا روانش زیمم دادعا عمج دوش
. برض لمعلاروتسدFMA
- عامج
هاب عامج تایلمع رد تقد نداد تسد زا نودب و ندرک درگ هلحرم کی اب هارمه عمج و برض لمع یارجا هلیسو هب ار یم تسد .دروآ
یراامعم رد .دراد هاناگادج تروص هب تایلمع یارجا هب تبسن یرتشیب تقد FMA
لاسن زا هاکG200
یرامعم
Tesla
لبق و یرامعم زا رت تاقد هب برض تایلمع رد حیحص ددع قطنم و باسح دحاو ،تسا Femi
24 یاتیب
حیحص دادعا تابساحم روظنم هب یلمعلاروتسد دنچ یلاوت دنمزاین هجیتن رد هک تسا دودحم .تسا
32FMA, Fused Multiply-Add
33Double Precision
34Single Precision
12 هنیهب
یزاس ود حطس ناهن هظفاح هب یسرتسد شهاک و یکیفارگ هدنزادرپ دحاوNoC
لکش 2 - 8 - تخس هشقن یکیفارگ هدنزادرپ نیلوا یرازفا
Fermi
هشارت یور رب هدش یحارط [
2 ]
یرامعم رد
Fermi
حیحص دادعا قطنم و باسح دحاو
، لماک تقد زا 32
ینابیتاشپ اه لمعلاروتسد مامت یارب یتیب
یم همانرب نابز تامازلا اب هک دنک درادناتسا یسیون
نیانچمه .تسا راگزاس یاراب حیحاص داداعا قاطنم و بااسح داحاو
تایلمع زا دمآراک ینابیتشپ 64
هعسوت تقد و یتیب هدش هنیهب هتفای
.دنا روطنیمه هالمج زا یدداعتم یااه لمعلاروتسد
یلوب تایلمع هباج ،تفیش ،35
... و لیدبت ،هسیاقم ،ییاج یم ینابیتشپ ار
.دنک
2 - 5 - 2 - صاخ عباوت دحاو راهچ
36
ره لکش قبطSM
2 - اراد9
ی 16 خذ دحاو ی هر زاب و ی با ی س ره رد هک ی
لک اناوت یی هبساحم 16 دصقم و ادبم ردآ
لمعلاروتسد هک صاخ عباوت دحاو راهچ .دنراد ار اه
ی غ ی ربجر ی دننام ،Sin Cosin
رسک عباوت ، ی
م ارجا ار رذج و ی
دننک .
ه رد هتشر ره یازا هب ار لمعلاروتسد کی صاخ عباوت دحاو ره یام اراجا کلاک لکیس ر
رد ناماسیر کای هاک دانک 8
یم ارجا کلاک صاخ عباوت دحاو هلول طخ .دوش
ادج دحاو زا لاسرا یم لاسرا دحاو هب ار هزاجا نیا هک تسا37
هاک داهد
لمعلاروتسد ،تسا لوغشم صاخ عباوت دحاو هک ینامز رد .دنک لاسرا ییارجا یاهدحاو ریاس هب زین ار رگید یاه
35Boolean
36SFU, Special Function Unit
37Dispatch Unit
Title and Author: Design and optimization of L2 cache access algorithm in a GPU NoC/ Siamak Biglari Ardabili
Supervisor: Dr. Golamreza Zare Fatin Graduation date: 2019.09.25
Number of pages: 54 Abstract
Research Aim: Graphic processing unit (GPUs) reaches high memory level parallelisms by executing hundreds of parallel thread. These threads group in a cooperative thread array and executes in Streaming Multiprocessor (SM) clusters. These CTAs schedules locally in clusters therefore there is a high chance in finding the same copy of data that needed by one SM in other SMs L1 cache in same cluster. Considering this feature, gaining access to neighboring SMs local L1 Cache in same cluster can make it possible for SMs to fetch and access their missed L1 data using other SMs L1 instead of fetching the requested data from L2 or DRAM. Also we face heavy congestion in NoC due to unique traffic pattern called many-to-few-to-many resulting from massive replying data travels from few memory controllers (MC) to many SMs. With reduced number of requests that caused by sending memory requests to neighboring SM instead of memory hierarchy, heavily congested replying network traffic changes to many-to-many traffic pattern and replying data sends through the less utilized core to core communication that mitigates the NoC traffic.
Research method: Using an intra-cluster Locality-aware(IC-LA) unit we are able to hold the constant cache block address and the corresponding SM id. When L1 MISS happens, instead of sending the request to memory hierarchy, the request will search the IC-LA list and if the requesting data HIT in neighboring SM, the IC-LA sends the request to the SM that have the data and fetch the data from local L1 cache.
Findings: In this study we use 15 workloads from 3 CUDA SDK, RODINIA and ISPASS2009 benchmarks to evaluate the proposed architecture. We model the proposed IC-LA unit in the GPGPU- sim simulator. Using GPGPU-Sim and choosing three important feature: network latency, L2 cache access and instruction per cycle (IPC) shows 26.5% (Up to 51.12%) reduction in average network latency, 16.82% (Up to 46.03%) reduction in average L2 cache access and finally 18.18% (Up to 58.1%) IPC improvement.
Conclusion: The result of this study showed that in the proposed method when L1 cache miss accrues, in addition to fetching the requested data faster than the L2 or DRAM, also the data replies instead of using the congested memory controllers reply network, travels through the less utilized core to core communication therefor mitigating the many-to-few-to-many traffic pattern to many-to-many traffic pattern and reduces the NoC pressure and improve the gpgpu performance.
Keywords: GPGPU, NoC, Memory Controler, GPGPU-sim, Instruction Per Cycle (IPC) , SM
University of Mohaghegh Ardabili Faculty of Engineering
Department of computer & electronic
Thesis submitted in partial fulfillment for the degree of M.Sc. in Computer engineering, computer architecture trends
Design and optimization of L2 cache access algorithm in a GPU NoC
By:
Siamak Biglari Ardabili
Supervisor:
Dr.Gholamreza Zare Fatin
Advisor:
Sep 2019