در این مطلب، ویدئو CUDACast #10a – اولین برنامه CUDA Python شما با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:01,020
حالا کدی که
2
00:00:01,020 –> 00:00:02,760
برای این ویدیو شتاب میدهم یک
3
00:00:02,760 –> 00:00:06,720
تابع افزودن برداری ساده است که به
4
00:00:06,720 –> 00:00:08,580
کد پایتون خالص نگاه میکند، میتوانید ببینید که
5
00:00:08,580 –> 00:00:11,730
عناصر آرایه numpy A را به B اضافه میکنیم و
6
00:00:11,730 –> 00:00:15,480
آنها و C تابع اصلی را ذخیره
7
00:00:15,480 –> 00:00:16,770
میکنیم. با مقدار زیادی از
8
00:00:16,770 –> 00:00:19,619
عناصر مقداردهی اولیه می کنیم، آرایه a را به
9
00:00:19,619 –> 00:00:22,020
همه آرایه B به همه آنها مقداردهی اولیه می کنیم و
10
00:00:22,020 –> 00:00:24,150
سپس آرایه ذخیره سازی C به 0 برای اطمینان
11
00:00:24,150 –> 00:00:26,430
از نوشتن مقدار صحیح است، سپس
12
00:00:26,430 –> 00:00:28,289
تابع افزودن برداری خود را فراخوانی می کنیم و
13
00:00:28,289 –> 00:00:29,880
چاپ خواهیم کرد. پنج عنصر اول و
14
00:00:29,880 –> 00:00:31,439
پنج عنصر آخر C تا مطمئن
15
00:00:31,439 –> 00:00:32,640
شویم که مقدار مناسب را دریافت می کنیم و سپس
16
00:00:32,640 –> 00:00:35,250
چاپ می کنیم که چقدر طول کشیده است، بنابراین بیایید ادامه دهیم
17
00:00:35,250 –> 00:00:38,600
و این نسخه خالص پایتون را اجرا کنیم،
18
00:00:50,160 –> 00:00:52,810
می توانید ببینید که ما هر دو را همانطور که انتظار می رود
19
00:00:52,810 –> 00:00:54,130
دریافت می کنیم. 12 ثانیه
20
00:00:54,130 –> 00:00:56,560
در حال حاضر اولین تکنیک شتابی که
21
00:00:56,560 –> 00:00:58,450
قرار است در این سری از ویدیوهای پایتون نشان دهم این
22
00:00:58,450 –> 00:01:00,520
است که به سادگی به عدد
23
00:01:00,520 –> 00:01:02,440
کامپایلر Pro بگویم من تابعی دارم که می خواهم
24
00:01:02,440 –> 00:01:04,660
آن را برای من موازی کند و سپس به
25
00:01:04,660 –> 00:01:06,280
طور خودکار آن تابع را کامپایل کرده و
26
00:01:06,280 –> 00:01:09,220
به GPU منتقل می کند. ما انجام خواهیم داد
27
00:01:09,220 –> 00:01:11,350
با استفاده از قابلیت بردار کردن شماره pros
28
00:01:11,350 –> 00:01:12,850
و اعمال آن در تابع افزودن بردار،
29
00:01:12,850 –> 00:01:16,060
اکنون ترفند با استفاده از چشم های برداری
30
00:01:16,060 –> 00:01:18,010
این است که تابع هدف باید یک
31
00:01:18,010 –> 00:01:20,470
تابع اسکالر باشد، به این معنی که تمام
32
00:01:20,470 –> 00:01:22,330
پارامترهای ورودی و خروجی باید
33
00:01:22,330 –> 00:01:24,880
مقادیر اسکالر باشند که توسط numpy
34
00:01:24,880 –> 00:01:29,070
مانند float شناسایی می شوند. 32 float 64 در 32 و به همین ترتیب در
35
00:01:29,070 –> 00:01:31,479
حال حاضر تابع افزودن برداری ما به گونه ای تنظیم
36
00:01:31,479 –> 00:01:33,160
شده است که هر سه آرایه را به عنوان پارامترهای ورودی دریافت
37
00:01:33,160 –> 00:01:36,729
کند و هیچ مقداری را برنگرداند.
38
00:01:36,729 –> 00:01:38,800
دکوراتور بردار انتظار دارد که تابع هدف
39
00:01:38,800 –> 00:01:40,840
تعدادی ورودی اسکالر را بپذیرد
40
00:01:40,840 –> 00:01:42,759
و یک خروجی اسکالر را برگرداند.
41
00:01:42,759 –> 00:01:45,280
اولین قدم ما این است که تابع افزودن بردار فعلی خود را برداریم
42
00:01:45,280 –> 00:01:46,869
و آن را به یک
43
00:01:46,869 –> 00:01:50,470
تابع اسکالر تبدیل کنیم تا
44
00:01:50,470 –> 00:01:57,400
نتیجه اسکالر a به اضافه B را برگردانیم و
45
00:01:57,400 –> 00:02:02,710
دیگر نیازی به عبور در C نداریم اکنون
46
00:02:02,710 –> 00:02:04,510
کامپایلر شماره pro می تواند تابع اسکالر
47
00:02:04,510 –> 00:02:06,369
را به طور خودکار اعمال کند. در سراسر آرایه های numpy خود
48
00:02:06,369 –> 00:02:09,280
در GPU و آخرین مرحله ما
49
00:02:09,280 –> 00:02:11,440
تغییر تابع اصلی و تغییر
50
00:02:11,440 –> 00:02:14,799
نحوه فراخوانی تابع افزودن برداری است
51
00:02:14,799 –> 00:02:16,720
که اکنون در عوض C را برمی گردانیم. پس از انتقال
52
00:02:16,720 –> 00:02:20,200
آن به پارامتر اکنون برای استفاده از
53
00:02:20,200 –> 00:02:21,820
کتابخانه برداری، ابتدا باید
54
00:02:21,820 –> 00:02:31,600
آن را از شماره pro وارد کنیم، بنابراین اکنون
55
00:02:31,600 –> 00:02:33,040
دو راه وجود دارد که به کامپایلر بگوییم
56
00:02:33,040 –> 00:02:34,900
چگونه یک نسخه تسریع شده
57
00:02:34,900 –> 00:02:37,660
از تابع اسکالر ما را برای این ویدیو تولید
58
00:02:37,660 –> 00:02:39,370
کند. با استفاده از یک تزیین کننده تابع پایتون، یک تزیین
59
00:02:39,370 –> 00:02:42,100
کننده تابع
60
00:02:42,100 –> 00:02:43,690
روی خط بلافاصله بالای تابع ما قرار
61
00:02:43,690 –> 00:0