بیاین یکم بیشتر روی گرافیک تمرکز کنیم.
این تصویر:
https://www.shadertoy.com/embed/XsXXDn?gui=true&t=10&paused=true
یک shader هست، کاملا با کد نوشته شده و طبق یه سری فرمول داره این ظاهر رو برای هر pixel میسازه.
تفاوت CPU و GPU، در زمینه ی همزمانی هست. توی گرافیک ما یک function رو به ازای تمام پیکسل های روی صفحه بصورت همزمان (parallel) اجرا میکنیم. اما CPU بصورت سری دونه دونه دستورات رو با سرعت بالا اجرا میکنه. سوالی که پیش میاد اینه که خب اگه انقد خفنه چرا کلا بجای CPU از GPU استفاده نمیکنیم؟
تو پست قبلی راجب اینکه گرافیک کلی فرمول ریاضی پشتشه صحبت کردیم. ریاضی چیزیه که میشه مستقیم روی مدار طراحی کرد و بصورت سخت افزاری محاسبه کرد.
بزارین اینطوری بگم، ما بجای اینکه با نرم افزار بیایم فرمول رو محاسبه کنیم: سیستم عامل بالا بیاد، دستورات رو لود کنه، بعد نرم افزار ما هم مثل بقیه دستورات لود و اجرا بشن
میایم روی سخت افزار، روی خود Transistor ها فرمول رو میسازیم، یعنی خود مدار یه محاسبه رو به سریعترین شکل ممکن (میشه گفت با سرعت برق) انجام میده.
اولین بار که با این موضوع برخورد داشتم تو درس طراحی دیجیتال (Digital Design) توی دانشگاه بود. اونجا یاد میگرفتیم با استفاده از Verilog مداری طراحی کنیم که یه محاسبه انجام میده، بعد میشد اون مدار رو بدیم بسازن و با ورودی و خروجی 0 و 1 مدار بهمون جواب محاسبات رو میده. این موضوع توی پردازش تصویر (مثلا توی دوربین راهنمایی و رانندگی) استفاده میشه.
کارت گرافیک هم از همین موضوع برای یه سری فرمول از پیش تعیین شده که بیشترین کاربرد رو توی محاسبه تصویر دارن استفاده میکنه و دستورات خارج ازون طراحی خیلی کندتر اجرا میشه. برای همینه که یه سری کارت گرافیک برای بازی خوبن، و یه سری برای هوش مصنوعی، چون فرمول هایی که روی مدار طراحی شدن فرق داره.
@ever_code
Post #271
57
- ❤ 1