View Full Version : سوال: GPU
1010011010
جمعه 06 دی 1392, 07:29 صبح
از اونجایی که خود کارت گرافیک به خودی خود یک کامپیوتر محسوب میشه (یعنی دارای رم و پردازشگر شخصی میباشد) یک سوالی در ذهن من ایجاد میشه اینه که دستورالعمل های مورد نیاز GPU از طریق رم کامپیوتر تغذیه میشه یا از طریق رم خود کارت گرافیک!؟
به عبارت دیگه نرم افزاری که برای اجرا شدن روی GPU نوشته شده، در رم اصلی قرار داده میشه یا در رم خود کارت گرافیک؟
خیلی خلاصه تر اینکه آقا، رجیستر Instruction Pointer که در GPU هست به کجا اشاره میکنه؟
سوال دوم من این هست که آیا GPU قادر هست انتقال اطلاعات از رم اصلی کامپیوتر انجام بده؟ یعنی GPU مثل CPU میتونه رم رو مدیریت کنه؟ تا شاید ازش بشه به عنوان پردازش موازی استفاده کرد؟
pswin.pooya
جمعه 06 دی 1392, 10:24 صبح
سلام
GPU یک کامپیوتر هست اما ساختار اون با PC کلی فرق داره. و دستورات برنامه ها (شیدرها) داخل خود حافظه کارت گرافیک (قسمتی مخصوص ) نگهداری میشه.
سوال دوم من این هست که آیا GPU قادر هست انتقال اطلاعات از رم اصلی کامپیوتر انجام بده؟ یعنی GPU مثل CPU میتونه رم رو مدیریت کنه؟ تا شاید ازش بشه به عنوان پردازش موازی استفاده کرد؟
مدیریت که نمی شه. اما میشه حافظه ها رو به هم مپ کرد. برای پردازش موازی هم الان چند سالی هست که داره ازش استفاده میشه و APIهایی هم برای اینکار توسعه داده شدن. نمونه اونها OpenCL و CUDA است.
1010011010
شنبه 07 دی 1392, 19:26 عصر
دستورات برنامه ها (شیدرها) داخل خود حافظه کارت گرافیک (قسمتی مخصوص ) نگهداری میشه.و این دستورات برنامه ها (شیدرها) توسط CPU به خود حافظه کارت گرافیک کپی میشه دیگه حتما؟ تحت نظارت OS ؟ آیا برنامه های معمولی که از نظر RING کمترین درجه دسترسی به دستورات CPU رو دارند اجازه دارند به این قسمت مخصوص از حافظه کارت گرافیک دسترسی داشته باشند؟
*ببخشید به قول خارجی ها STUPID QUESTIONS میکنم ها، دلیلش اینه که دونستن این مفاهیم بنیادین به من انگیزه میده که آیا این حوزه از برنامه نویسی سیستمی با علایق من همخوانی داره تا انگیزه مطالعات جامع رو در این زمینه به من بده یا نه*
pswin.pooya
شنبه 07 دی 1392, 21:43 عصر
البته اگر یه سرچ کوچولو هم می کردین کلی مطلب فارسی در این مورد پیدا می کردین.
این شیدرها توسط درایورهای کارت گرافیکی بر روی اون قرار می گیرن. معمولا یا high level هستن ( مثل GLSL، CG و یا HLSL) یا اینکه low-level . بعضی از اونها کامپایلر دارن مثل HSLS بعضی های دیگه خود درایور کامپایلشون میکنه مثل GLSL
1010011010
دوشنبه 09 دی 1392, 06:09 صبح
البته اگر یه سرچ کوچولو هم می کردین کلی مطلب فارسی در این مورد پیدا می کردین.حق با شماست. دلیل اینکه خواستم جوابم رو اینجا بیابم یه خورده کلیشه ایی بود چون تقریبا تازه حساب کاربریم رو ثبت نام کردم خواستم بعد از مدت ها یک فعالیتی کرده باشم به عنوان افتتاخ در این بخش
این شیدرها توسط درایورهای کارت گرافیکی بر روی اون قرار می گیرن... خود درایور کامپایلشون... بسیار بسیار مفید بود زیرا قصد پرسیدن رابطه این مورد با درایور ها رو داشتم که خودتون اشاره کردید. ممنون.
و اینکه اصطلاح shader هم سر نخ مفیدی بود برای تحقیق. thx
یه سوالی در مورد سیستم عامل آراکس جنابعالی دارم: آیا شما در این سیستم عامل از امکانات کارت گرافیک (دستورالمعمل های جی پی یو) استفاده کردید؟
pswin.pooya
دوشنبه 09 دی 1392, 09:50 صبح
یه سوالی در مورد سیستم عامل آراکس جنابعالی دارم: آیا شما در این سیستم عامل از امکانات کارت گرافیک (دستورالمعمل های جی پی یو) استفاده کردید؟
هنوز هیچ سیستم عاملی ازاونها استفاده نکرده. اما در آینده قرار قسمتهایی از لینوکس از اون استفاده کنه. و ویندوز هفت به بالا هم از یک ویژگی کار گرافیک به نام 2D accelrate استفاده میکنن.
Veteran
سه شنبه 10 دی 1392, 08:48 صبح
این سیستم عامل اراکس به کجا رسید ؟
1010011010
سه شنبه 10 دی 1392, 20:18 عصر
هنوز هیچ سیستم عاملی ازاونها استفاده نکرده
ببخشید اینو میگم; ولی این حوزه به اندازه ایی ذاتا مبهم هست که اگر از ادبیات ابهام دار هم استفاده کنیم خیلی قضایا پیچیده تر میشه. میگید هیچ سیستم عاملی استفاده نکرده بعد ویندوز هفت به بالا... یعنی پس در عصر ویندوز اکس پی این کارتهای گرافیکی پیشرفته چرا وجود داشتن. ثانیا مثلا سیستم عامل اپل (مکینتاش) رو ما طوری میشناسیم که هدفش گرافیکانه است! ممکنه مکینتاش از دستورات جی پی یو استفاده نکرده باشه؟
*با احترام، چون میدونم کمبود وقت بعضی وقتا دقت رو میاره پایین*
pswin.pooya
چهارشنبه 11 دی 1392, 01:10 صبح
ببخشید اینو میگم; ولی این حوزه به اندازه ایی ذاتا مبهم هست که اگر از ادبیات ابهام دار هم استفاده کنیم خیلی قضایا پیچیده تر میشه. میگید هیچ سیستم عاملی استفاده نکرده بعد ویندوز هفت به بالا... یعنی پس در عصر ویندوز اکس پی این کارتهای گرافیکی پیشرفته چرا وجود داشتن. ثانیا مثلا سیستم عامل اپل (مکینتاش) رو ما طوری میشناسیم که هدفش گرافیکانه است! ممکنه مکینتاش از دستورات جی پی یو استفاده نکرده باشه؟
گرافیک چند نمونه هست:
یکی اینه که به کمک کارت گرافیک رسم بشه ( مثلا یک خط ) که اصطلاحا میگن شتاب داده شده با کارت گرافیک .
یکی هم اینه که CPU رسم کنه ( خودش نقاط خط رو مشخص کنه ) و بعد روی فریم کارت گرافیک بریزه که اون هم به مانیتور بده.
در حالت اول CPU فقط فرمان ترسیم خط رو صادر میکنه اما در حالت دوم خودش خط رو میکشه.
از طرف دیگه محاسبات سمت کارت گراقیک اصلا بحث ش کلا از گرافیک جداست.
ممکنه مکینتاش از دستورات جی پی یو استفاده نکرده باشه؟
چرا امکان نداره؟!!!
مثلا در لینوکس که مثل مک از x11 برای گرافیک استفاده میکنه. میشه ترسیم صفحه رو به کمک OpenGL و یا بدون اون انجام داد. که در صورتی که به کمک OpenGL باشه. ترسیم ها رو کارت گرافیک به عهده میگیره ( به شرطی اینکه درایور نصب شده باشه )
در صورتی که هیچ درایور کارت گرافیکی وجود نداشته باشه از مدهایی مثل VESA که توی ویندوز به اسم standard vga شناخته میشه استفاده میشه که یه رابط استاندارد هست که همه سازندهای پردازندهای گرافیکی اون رو رعایت میکنن.
ویندوز هفت به بالا... یعنی پس در عصر ویندوز اکس پی این کارتهای گرافیکی پیشرفته چرا وجود داشتن
ویندوز که اوصلا قبل از ویستا ترسیم رو خودش انجام میداد و میریخت رو بافر فریم کارت گرافیک اما بعد از ویستا اگر کارت گرافیکی نصب باشه از Direct2D برای رسم استفاده میکنه که این API دستورات رو به کارت گرافیک میده.
ثانیا مثلا سیستم عامل اپل (مکینتاش) رو ما طوری میشناسیم که هدفش گرافیکانه است!
البته اگر به اصل مک برگردیم بعنی یونیکس که حتی گرافیک هم برای کار با سیستم عامل لازم نیست . اما قضیه کمپانی اپل فرق میکنه. تاکید اونها روی گرافیک است و از OpenGL برای شتابدهی استفاده میکنن. لازمه اضافه کنم این دیدگاه که مک فقط گرافیک و ظرافت هست به نظر من خیلی ابندایی هست. با توجه به سابقه خانواده یونیکس. همه چی توی انعطاف خلاصه میشه.
اما محاسبات سمت GPU کلا قضیه اش فرق میکنه.
زمانی که شما ترسیمات رو میدین کارت گرافیک انتظار ندارین که نتیجه برگردونه که مثلا فلان فرمول مقدارش چقدر شد. فقط میخوایین رو صفحه نشون بده که توی ۹۹ درصد موارد چیزی هم که نشون میده چک نمیشه. اما توی محاسبات هدف شما نمایش نیست . بلکه فقط میخوایین یه مورد خاص رو محاسبه کنه و نتیجه رو به شما اطلاع بده. ساختار قبلی GPUها چنین قابلتی رو به شما نمی داد. اما ساختار جدید کاملا روی این موضوع تکیه کرده. حتی تعداد هسته های پردازنده ای با تعداد هسته های شیدر فرق می کنن.
*با احترام، چون میدونم کمبود وقت بعضی وقتا دقت رو میاره پایین*
دقت نکردن از اون بدتره
1010011010
چهارشنبه 11 دی 1392, 02:17 صبح
اول از همه ممنون به خاطر حوصله ایی که بخرج دادید استاد. بعد اگر احیانا جسارت من رو حمل بر بی ادبی دیدید روی حساب نپختگی بگذارید. خداییش خودم متن خودم رو خوندم خودمو جای شما فرض کردم اون علامت تعجبه بدجور رو مخم بود :اشتباه:
1010011010
پنج شنبه 12 دی 1392, 13:16 عصر
این سیستم عامل اراکس به کجا رسید ؟
به اینجا: http://sourceforge.net/p/arax/code/HEAD/tree (http://sourceforge.net/p/arax/code/HEAD/tree/)
چطور مگه؟ :متفکر:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.