اطلاعیه

Collapse
No announcement yet.

طرز کار GPU؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    طرز کار GPU؟

    سلام
    همیشه یه سوالی تو ذهنم بوده اینکه نقش GPU دقیقا چیه و دقیقا چه کار هایی انجام میده؟
    و اینکه CPU چه جور اطلاعاتی رو در اختیار GPU قرار میده که پردازشش کنه
    و اینکه استاندارد ها در زمینه چی هست؟

    #2
    پاسخ : طرز کار GPU؟

    مروزه پردازندهآ‌آ‌های گرافیکی که بر روی کارتآ‌گرافیکآ‌های گرانآ‌قیمت نصب میآ‌شوند توان پردازشی خارقآ‌العادهآ‌ای را نسبت به پردازندهآ‌های مرکزی ارائه میآ‌دهند، این موضوع موجب گسترش کاربردآ‌های این پردازندهآ‌ها در حوزهآ‌هایی فراتر از بازیآ‌های کامپیوتری گشته است، پردازندهآ‌های گرافیکی مدرن با معماری موازی خود پردازندهآ‌های بسیار سریعی به شمار میآ‌روند، در عین حال با قیمت و توان مصرفی کمتری عرضه میآ‌شوند و جهت پیادهآ‌سازی الگوریتمآ‌ها و برنامه های بینایی ماشین و پردازش تصویر که بار پردازشی زیادی را جهت رسیدن به نرخ فریم بیشتر طلب میآ‌کنند، یک راهآ‌کار اقتصادی و کارآمد به شمار میآ‌رود، طوری که برنامه نویس بدون نیاز به فراگیری واسطآ‌های برنامه نویسی گرافیکی به کمک کتابخانهآ‌های موجود برای اینآ‌کار میآ‌تواند بار پردازشی برنامه خود را به سادگی از پردازنده مرکزی به پردازنده گرافیکی منتقل کند.
    واحد پردازش گرافیکی به انگلیسی( Graphics processing unit) یا به اختصار GPU ابزاری اختصاصی برای رندر کردن گرافیکی (به طور طبیعی به نظر رسیدن تصویر) در کامپیوترهای شخصی، ایستگاهآ‌های کاری، و یا در کنسولهای بازی است. این واحد گاهی اوقات واحد پردازندهء بصری یا VPU نیز نامیده میآ‌شود. ویژگیآ‌های واحدهای پردازش مرکزی جدید برای پردازش و ارائه دادن کارهای دیداری (گرافیکی)، آنآ‌ها را بسیار کارآمدتر از واحدهای پردازندهء مرکزی یا CPU در پردازش الگوریتمآ‌های پیجید کرده است. در واقع GPU همانندCPU (پردازنده اصلی کامپیوتر) است ولی وظیفه اصلی آن پردازش اطلاعات مرتبط با تصاویر است.یک GPU معمولاً بر روی کارتهای گرافیکی قرارمی گیرد، اگرچه کارتهای گرافیکی غیر حرفهآ‌ای مستقیما بر روی بُرد مادر (OnBorad) قرار میآ‌گیرند.
    GPU ابزاری است شامل تعدادی عملگر ابتدایی گرافیکی، که باعث میآ‌شود نسبت به CPU در خلق تصاویر بر صفحه نمایشگر بسیار سریعتر عمل کنند
    GPU های امروز بسیار پیشرفته شده اند و دستورات بسیاری را بصورت موازی پردازش می کنند، GPU ها بسیاری از دستورات را بهتر و سریعتر از پردازنده اصلی کامپیوتری یا CPU انجام می دهند در کامپیوترهای خانگی GPU می تواند در کارت گرافیک باشد و یا برروی مادربرد قرار گیرد.رایجآ‌ترین عملگرها برای گرافیک دو بعدی کامپیوترها شامل عملگر BitBLT است که معمولاً در سختآ‌افزارهای مخصوص یک "Biltter" نامیده میآ‌شود. این عملگرها برای کشیدن مستطیل، مثلث، دایره و قوس بکار میآ‌روند. پردازندهآ‌های گرافیکی جدید، پردازش گرافیک سه بعدی را نیز در رایانهآ‌ها انجام میآ‌دهند.

    واحد پردازش گرافیکی (gpu) چیست ؟
    مقایسه GPU,CPU
    مقایسه عملکرد پردازندهآ‌گرافیکی(GPU) با پردازندهآ‌مرکزی (CPU) به این صورت می باشد که، پردازندهآ‌گرافیکی، نوعی پردازندهآ‌ موازی است که بر روی کارت گرافیکآ‌ها قرار دارد. این پردازنده به صورت کاملا اختصاصی برای پردازش گرافیکی محیطآ‌های سهآ‌بعدی و بازیآ‌های کامپیوتری طراحی شده است که طی سالآ‌های گذشته توسط صنعت چند بیلیون دلاری بازیآ‌های کامپیوتری آن چنان تحول یافته که امروزه از نظر کارایی با پردازندهآ‌مرکزی که یک پردازنده همه منظوره به شمار میآ‌رود رقابت میآ‌کند.
    بکار گیری پردازندهآ‌گرافیکی در محاسبات عمومی جایگاه جدیدی برای کارتآ‌گرافیکآ‌های قدرتمند ایجاد کرده است، جایی که از پردازندهآ‌گرافیکی دیگر برای پردازش محاسبات گرافیکی بازیآ‌هایآ‌کامپیوتری استفاده نمیآ‌شود، در عوض در نقش یک پردازنده کمکی، بخشی یا تمامی بار محاسباتی پردازندهآ‌مرکزی را تقبل کرده و به عملیات پردازش سرعت میآ‌بخشد.
    GPUهای جدید از بسیاری از ترانزیستورهایشان برای محاسبهء مربوط به گرافیک سه بعدی رایانهآ‌ها استفاده میآ‌کنند. آنآ‌ها در ابتدا برای شتاب دادن به حافظهء اصلی، نقشه برداری بافت ها، رندرکردن چند ظلعی های با اضلاع زیاد و به طور کلی چندگوشهآ‌ها استفاده میآ‌شدند
    ولی بعداً برای کارهای سختآ‌تر از جمله شتاب دادن به محاسبات هندسی مانند تبدیل رئوس از یک دستگاه مختصات به یک دستگاه مختصات دیگر استفاده شد. اخیراً با گسترش GPUآ‌ها , آنها سایه زنیآ‌های قابل برنامهآ‌ریزی و رئوس و بافتآ‌هارا اداره میآ‌کنند همچنین با بسیاری از عملگرآ‌های پشتیبانی شده توسط CPUآ‌ها و الحاقی و محاسبهء مقادیر واسط بین دو نقطه، با تکنیک (reduce aliasing) و Color Space با دقت بسیار بالا انجام میآ‌دهد.

    ارائه ی نکاتی برای خرید کارت گرافیک متناسب با سیستم وبودجه شما.
    انتخاب یک کارت گرافیک جدید می تواند امری دشوار باشد. تا زمانی که شما درباره آخرین GPU های ارائه شده و کارایی های آنها اطلاع نداشته باشد، دانستن اینکه کدام کارت ارزش خریدن را دارد غیر ممکن است. واحد پردازش گرافیکی GPU، مثل CPU، هر سال پیشرفت می کند و این به این معنی است که دامنه بسیار وسیعی از کارت گرافیک ها برای انتخاب موجود می باشند و خرده فروشان هم دوست دارند کارت های منسوخ را در کنار آخرین و بهترین کارت های ارائه شده قرار دهند. اگر در اینجا دقت نکنید ممکن است در آخر پول زیادی برای تکنولوژی صرف کنید که قبلا کنار گذاشته شده است.

    حافظه همه چیز نیست!
    واحد پردازش گرافیکی (gpu) چیست ؟
    شما به یک کارت گرافیک نیاز دارید که حافظه کافی برای بازی کردن بازی ها، در وضوح بالا و با تنظیمات گرافیکی بالا داشته باشد. کارت گرافیک های خوب معمولا مقدار زیادی حافظه دارند، زیرا کل توان GPU در صورت کافی نبودن حافظه موجود ممکن است تلف شود.
    به عنوان مثال کارت گرافیک Radeon X1300 با 512 MB حافظه در مقایسه با کارت گرافیک Radeon X1600 با 256 MB حافظه دارای عملکرد ضعیف تری میباشد!
    تولید کنند گان کارت های گرافیک می دانند که خریداران تازه کار معمولا به مقدار حافظه به عنوان ملاک اصلی مقایسه دو کارت توجه می کنند، و این دلیلی است بر دیدن کارت های با GPU های ارزانی که 256MB و یا حتی 512MBحافظه دارند و این مانند این است که یک موتور ضعیف را در بدنه یک ماشین تنومند قرار دهیم. چنین کارت هایی ممکن است اعداد درستی در مشخصات داشته باشند اما کارایی ضعیف خود را به محض شروع بازی نمایان خواهند کرد.

    واحد پردازش گرافیکی (gpu) چیست ؟
    همه چیز به GPU مربوط است!
    حافظه مهم است، اما قلب واقعی یک کارت گرافیک واحد پردازش مرکزی آن است. هنگامی که شما در میان نام های کارت های گرافیک پرسه می زنید، مهمترین چیزی که به نظر می رسد نوع GPU است، زیرا این چیپ کوچک مسئول کلیه کارهای کارت های سه بعدی است. امروزه بهترین پردازنده های گرافیکی را Nvidia و ATI تولید می کنند، اما خریدن یک کارت گرافیک با یک پردازنده Nvidia GeForce و یا ATI Radeon کافی نیست.
    شما باید علاوه بر این به مدل پردازنده توجه کنید، زیرا هر دو شرکت از کارت های سطح پایین زیر 100 دلار تا کارت های پر قدرت 500 دلاری خود را با این اسامی نام گذاری می کنند. شماره های بزرگتر در مدل ها بهتر هستند، اما باید به توصیف کننده های اضافی در نام مدل مانند GT، GS، GTX، XT و XTX توجه کنید زیرا اینها معمولا اطلاعاتی در مورد سایه زن ها و همچنین سرعت پردازنده نمایان می کنند. نقد چند کارت را بخوانید و یا نگاهی به کارایی کارت ها در بازی ها بیندازید تا با مدل های فعلی آشنا شوید و بتوانید آنها را با هم مقایسه کنید.

    خط لوله، سایه زن و سرعت ساعت:
    در روزهای اولیه شتاب دهنده های سه بعدی شما می توانستید با نگاه کردن به سرعت و خط لوله پیکسل های یک GPU، اطلاعات کلی در مورد سطح کارایی آن کسب کنید. امروزه GPU ها کارهای بیشتری از پردازش پیکسلی بی خردانه انجام می دهند.
    نور پردازی و افکت های دیگر که معمولا به چندین گذر از خط لوله نیاز داشتند اکنون می تواند توسط یک برنامه سایه زن اجرا شوند و همان نتایج را با گذر و کار بیهوده کمتر به همراه بیاورند
    هم اکنون GPU ها دارای واحد های پردازش اختصاصی هستند که به راه اندازی کار برنامه های پیچیده راسی و سایه زن پیکسلی اختصاص یافته اند. با افزایش سایه پردازی های بازی ها، واحد های سایه زن یک خصوصیت مهم در کارت های ویدیویی آینده، تبدیل خواهد شد. اخیرا ATI شروع به ارائه گزارش درباره تعداد واحدهای سایه زن تخصیص داده به هر خط لوله پیکسلی در Radeon X1900 XTX کرده است.
    واحد پردازش گرافیکی (gpu) چیست ؟
    برای هم اکنون، هنوز هم شما می توانید GPU ها را توسط تعداد خطوط لوله پیکسلی که دارند ارزیابی کنید. اگر چه تولید کنند گان GPU اطلاعاتی هم درباره خطوط لوله راس (vertex pipeline) می دهند، اما تاکنون ما بازی مشاهده نکرده ایم که به خاطر سطح پردازش راسی پایین، در تنگنا قرار بگیرد. کارت ها سطح پایین معمولا دارای 4 خط لوله پیکسلی می باشند. کارت های متوسط دارای 8 یا 12 خط لوله می باشند و کارت های سطح بالا دارای 16 و یا بیشتر خط لوله می باشند.
    سرعت ساعت بیشتر همیشه بهتر است، اما اگر مجبور شدید بین سرعت ساعت GPU و تعداد خطوط لوله پیکسلی آن یکی را انتخاب کنید، معمولا بهتر است تعداد بیشتر خط لوله را انتخاب کنید. کارتی که با سرعت 400MHz که دارای 8 خط لوله است عملکرد بسیار بهتری نسبت به کارتی 500MHz با 4 خط لوله دارد. به عنوان مثال گرافیک GeForce 7900GTX دارای 24 خط لوله است.

    دیدگاه


      #3
      پاسخ : طرز کار GPU؟


      مدتی است که زمزمه استفاده از GPU به جای CPU، نقل بسیاری از سایتآ‌ها و پیشآ‌قراولان سختآ‌افزار شده است.
      دلیل آن هم بدیهی است. امروزه پیشرفتهآ‌ترین پردازندهآ‌های دسکتاپ اینتل یا AMD فقط 4 هسته دارند در حالی که کارتآ‌های گرافیکی موجود صدها هسته دارند. پس اگر بشود پردازشآ‌های رایج یا حتی تنها بخشی از آنها را توسط GPU انجام داد، اولاً راندمان بسیار بالایی به دست میآ‌آید و ثانیاً بار پردازشی از دوش CPU برداشته شده و امکان انجام پردازشآ‌های دیگر توسط آن فراهم میآ‌شود.
      جنگGPU بین ATI و nVIDIA که از اوایل سال 2000 شروع شده، منجر به افزایش قدرت پردازشیGPUها شده است. به موازات این افزایش قدرت و سرعت، هر دو شرکت مذکور نیاز به افزایش کیفیت ویدیویی مخصوصاً در برنامهآ‌های گرافیکی سهآ‌بعدی نیز داشتند که این امر در بحث AntiAliasing و AntiSotropic بروز کرد. اگرچه فناوریآ‌های عرضه شده توسط آنها در مقاطع مختلف، باعث افزایش کیفیت شده است، اما تحولی اساسی ایجاد نکرده است. اینک هر دو با فناوری جدیدی (هر چند با اسامی متفاوت) قصد انقلاب در حیطه پردازشآ‌های سنگین را دارند.
      هر دو غول گرافیکی دنیا یعنی nVIDIA و ATI (یا بهتر بگوییم AMD) این ایده را در مرحله عمل آوردهآ‌اند و امکان انجام برخی از پردازشآ‌های CPU را توسط کارتآ‌های گرافیکی خود میسر کردهآ‌آ‌اند. nVIDIA نام فناوری خود را CUDA گذاشته است و ATI هم نام Stream را انتخاب کرده است. باید دید که آیا GPUها موفق میآ‌شوند CPUها را از دور خارج آ‌کنند؟

      nVIDIA CUDA
      CUDA که مخفف عبارت Compute Unified Device Architecture است، یک معماری جدید پردازش موازی است که توسط nVIDIA ابداع شده است. CUDA موتور پردازشی در GPUهای nVIDIA است که توسط برنامهآ‌نویسان و در زبان برنامهآ‌نویسی خاص خود قابل دسترسی است. برنامهآ‌نویسان در نسخه خاصی از زبان قدرتمند C که دارای ضمیمه (nVIDIA (C with nVIDIA extensions است، برنامهآ‌های خود را میآ‌نویسند و بعد از کامپایل قادرند آنها را روی GPU اجرا کنند. البته به زودی با سایر زبانآ‌های برنامهآ‌نویسی مثل C++ و Fortran هم میآ‌توان روی GPU برنامه نوشت.
      آخرین نسخه درایورها، همگی دارای تمامی اجزای مورد نیاز برای CUDA هستند. CUDA با تمامی GPUهای سری 8 به بعد شرکت nVIDIA در هر سه خط تولید GeForce، Quadro و Tesla کار میآ‌کند. nVIDIA تصریح میآ‌کند که تمامی برنامهآ‌هایی که برای GeForce سری 8 نوشته شدهآ‌اند، همچنان بدون نیاز به تغییرآ‌ روی کارتآ‌های جدیدتر اجرا خواهند شد. CUDA همچنین امکان دسترسی برنامهآ‌نویسان به مجموعه دستورالعملآ‌های Native و اجزای حافظه در پردازش موازی را نیز فراهم میآ‌کند که این امر توانایی برنامه‎نویس را در کنترل سختآ‌افزار بسیار بالا میآ‌برد. بنابراین با استفاده از CUDA، معماری GPUها هم مثل CPUها باز میآ‌شود، گرچه GPUها برخلاف CPUها دارای یک معماری "بسیار-هستهآ‌ای" موازی هستند که طی آن هستهآ‌ها توانایی پردازش هزاران Thread را به طور همزمان دارند. بنابراین اگر برنامهآ‌ای منطبق با این معماری باشد، میآ‌تواند راندمانی بسیار بالاتر از اجرا بر روی CPU را به ارمغان بیاورد.
      با بیش از 100 میلیون GPU فروخته شده با قابلیت CUDA در سراسر دنیا، بسیاری از برنامهآ‌نویسان با استفاده از کیت(SDK (Software Development Kitبرنامهآ‌نویسی روی GPU که توسط nVIDIA فراهم شده است، در حال نوشتن برنامهآ‌های متفاوتی از سطح خانگی تا حرفهآ‌ای از پردازشآ‌های صوتی و تصویری گرفته تا شبیهآ‌سازیآ‌های فیزیکی، اکتشاف نفت و گاز، طراحی محصول، تصاویر پزشکی و تحقیقات علمی هستند.
      بسیاری از کاربردهای فوق حداقل 256 مگابایت حافظه اختصاصی گرافیکی نیاز دارند که امروزه این مقدار حافظه را روی تمامی کارتآ‌های گرافیکی میآ‌توان یافت.
      در دنیای بازیآ‌های کامپیوتری، کارتآ‌های گرافیکی علاوه بر رندر تصاویر گرافیکی، برای محاسبات فیزیکی بازی (افکتآ‌های فیزیکی مثل دود، آتش، حرکت آب، شن و ...) که اصطلاحاً PhysX نامیده میآ‌شوند، نیز مورد استفاده قرار میآ‌گیرند. CUDA همچنین برای افزایش سرعت کاربردهای غیر گرافیکی مثل محاسبات بیولوژیکی و رمزنگاری هم استفاده میآ‌شود.
      CUDA هم APIهای سطح پایین و هم APIهای سطح بالا را فراهم کرده است. در 15 فوریه 2007 کیت SDK مربوط به CUDA در محیط ویندوز و لینوکس ارایه شد و سپس در نسخه 2.0 که در تاریخ 14 فوریه 2008 ارایه شد، MacOS هم مورد پشتیبانی قرار گرفت
      مراحل پردازش CUDA به ترتیب زیر است:
      1ـ کپی دادهآ‌ها از حافظه اصلی به حافظه GPU
      2ـ دستور انجام پردازش توسط CPU به GPU
      3ـ انجام پردازش موازی در هستهآ‌های GPU
      4ـ کپی نتایج از حافظه GPU به حافظه اصلی

      ویژگیآ‌های CUDA
      • استفاده از زبان C استاندارد برای نوشتن برنامهآ‌های پردازش موازی بر روی GPU
      • کتابخانهآ‌های عددی استاندارد برای انجام تبدیل فوریه سریع و سابآ‌روتینآ‌های اصلی جبر خطی
      • درایور CUDA اختصاصی برای انتقال سریع دادهآ‌ها بین GPU و CPU
      • درایور CUDA اختصاصی برای عمل متقابل با OpenGL و DirectX
      • پشتیبانی از ویندوز و لینوکس و Mac OS

      مزایای CUDA
      CUDA دارای چندین مزیت نسبت به روشآ‌های معمول پردازش توسط(GPU (GPGPU است که در ادامه ذکر شدهآ‌اند:
      • خواندن پراکنده: کدها میآ‌توانند از چندین آدرس مختلف از حافظه خوانده شوند.
      • حافظه اشتراکی: CUDA میآ‌تواند بخشی از حافظه را بین Threadها با سرعت بالا به اشتراک بگذارد که در واقع مثل کشی عمل میآ‌کند که توسط کاربر کنترل میآ‌شود و پهنای باند بالاتری را ایجاد میآ‌کند.
      • دانلود و بازخوانی سریعآ‌تر به و از GPU
      • پشتیبانی کامل از عملیات صحیح و بیتی

      محدودیتآ‌های CUDA
      • CUDA از یک زبان C، بدون توابع بازگشتی و بدون اشارهآ‌گر استفاده میآ‌کند و یک پردازش ساده، در بخشآ‌های پراکنده حافظه پخش میآ‌شود، بر خلاف حالت عادی که از یک بخش یکپارچه از حافظه استفاده میآ‌گردد.
      • رندر بافتآ‌ها (Texture rendering) پشتیبانی نمیآ‌شود.
      • پهنای باند و تاخیر گذرگاه بین CPU و GPU میآ‌تواند گلوگاه سیستم شود.
      • در دقت مضاعف (double precision) هیچ مشکلی وجود ندارد اما در دقت تکی
      (single precision) به دلیل مشکلات ساختاری، کمی عدم دقت پیش میآ‌آید.
      • برای راندمان بالا، Threadها باید در گروهآ‌آ‌های حداقل 32تایی اجرا شوند در حالی که نیاز به هزارها thread است. انشعابآ‌ها در کد برنامه باعث افت راندمان میآ‌شوند و هر 32 تا thread یک مسیر اجرایی را طلب میآ‌کند. مدل اجراییSIMD در زمان اجرای یک برنامه ذاتاً انشعابآ‌پذیر، دچار محدودیتآ‌های قابل توجهی میآ‌شود.
      • GPUهای دارای CUDA فقط در تولیدات سری 8 به بعد nVIDIA قابل پشتیبانی هستند.

      تبدیل کننده Badaboom
      nVIDIA در تولید نرمآ‌افزارهای مبتنی بر GPU پیشآ‌قدم شده و ابزاری به نام Badaboom برای تبدیل فرمتآ‌های مختلف فایلآ‌های ویدیویی به یکدیگر عرضه کرده است. nVIDIA میآ‌آ‌گوید Badaboom تا 20 برابر سریعآ‌تر از سایر نرمآ‌افزارهای رایج تبدیلآ‌کننده (Convertor) عمل میآ‌کند. البته دوستان برنامهآ‌نویس میآ‌آ‌دانند که چرا nVIDIA تبدیل فایلآ‌های ویدیویی را به عنوان نمونهآ‌ای از کاربردهای CUDA عرضه کرده است، چرا که عمل تبدیل فرمتآ‌های ویدویی بسیار مناسب برنامهآ‌نویسی موازی است و هیچ انشعابی در برنامه پیش نمیآ‌آید. البته کار عجیبی که انجام داده، این است که قیمت 30 دلار را برای این نرمآ‌افزار تعیین کرده است. معمولاً شرکتآ‌ها برای توسعه یک فناوری جدید، از سودهای ناچیز چشمآ‌إ¾آ‌پوشی کرده و شرایط را برای معرفی بیشتر فناوری مورد نظر مساعد میآ‌کنند.

      ATI Stream Acceleration
      ATI هم با همان ایده nVIDIA اقدام به پردازش موازی توسط GPU کرده است و آن را ATI Stream Acceleration نامیده است.
      Stream مجموعهآ‌ای از فناوریآ‌های پیشرفته سختآ‌افزاری و نرمآ‌افزاری است که امکان همکاری پایاپای پردازندهآ‌های گرافیکی AMD ATI سابق را با CPU فراهم میآ‌کند تا بسیاری از کاربردها و مهمآ‌تر از همه، پردازشآ‌های گرافیکی با سرعت بالایی انجام شوند. در واقع AMD اکوسیستمی طراحی کرده که کارایی بالا، کاربردهای متنوع، نرمآ‌افزارهای خاص و ابزارهای ویژه از جمله ویژگیآ‌های آن است.
      در واقع Stream به یک گروه از مسایل، کاربردها یا پردازشآ‌ها اشاره میآ‌کند که میآ‌توانند به عملیات‎های موازی و مجزا شکسته شوند و به طور همزمان روی یک پردازنده اجرا شوند. این جریانآ‌های دادهآ‌ موازی وارد پردازنده میآ‌شوند و به صورت موازی در هستهآ‌های آن پردازنده اجرا شده و نتایج به صورتی قابل اتصال به هم از پردازنده خارج میآ‌شوند.
      در واقع مزیت اصلی Stream در پردازشآ‌های
      (SIMD(Single Instruction Multiple Data بروز میآ‌کند. چون CPU براساس روش
      (SISD(Single Instruction Single Data کار میآ‌کند، بنابراین در پردازشآ‌های موازی Stream عالی ظاهر میآ‌شود

      برنامهآ‌هایی که میآ‌خواهند برای Stream طراحی شوند، باید دو مشخصه اصلی داشته باشند:
      •آ‌ درجه بالایی از محاسبات ریاضی در هر واکشی (Fetch) از حافظه
      • آ‌ محاسبات مستقل: انجام محاسبات روی هر واحد پردازشی بدون نیاز به بررسی یا تایید هر واحد پردازشی دیگر

      ویژگیآ‌های Stream عبارتند از:
      •آ‌ امکان اجرای برنامهآ‌های جدید بر روی معماری جدید
      •آ‌ امکان اجرای پردازشآ‌های موازی که با معماری GPUهای جدید مطابقت دارند
      •آ‌ انتقال از توابع ثابت به پایپآ‌لاین قابل برنامهآ‌نویسی
      •آ‌ کاربردهای وسیع در تحقیقات و صنایع تحت عنوان
      (GPGPU (General-Purpose Computation on Graphics Processing Unit
      •آ‌ پشتیبانی از 320 هسته پردازشی (واحد محاسباتی یا ALU)
      •آ‌ پشتیبانی از GPUهای سری R600 به بعد

      مهمآ‌ترین مزایای Stream
      •آ‌ مزایای سختآ‌افزاری:
      انجام محاسبات ممیز شناور با دقت مضاعف
      پشتیبانی از 2 گیگابایت حافظه اختصاصی GDDR3
      مصرف توان پایین در پردازشآ‌های سنگین (پردازش بیش از 5 میلیارد عملیات ممیز شناور با یک وات توان)
      نیاز به یک کانکتور برق برای Stream
      DMA غیر همزمان (انتقال دادهآ‌ها بدون نیاز به وقفه پردازنده)
      امکان استفاده از حافظهآ‌هایی با اندازه متفاوت برای نگهداری نتایج میانی
      استفاده از یک بورد کوچک (فقط 23.5 سانتیآ‌متر)
      پشتیبانی از اینترفیس PCI Express 2.0 x16
      •آ‌ مزایای نرمآ‌افزاری:
      قابل برنامهآ‌نویسی با محیطی شبیه C با یک کامپایلر سطح بالا
      پشتیبانی از سیستمآ‌ عاملآ‌های ویندوز و لینوکس 32 و 64 بیتی

      در دسامبر 2008 شرکت AMD با عرضه ATI Catalyst نسخه 8.12 امکان استفاده از قابلیت Stream را در کارتآ‌های خود فعال کرد. شرکت AMD برای تمرکز بر روی قابلیت Stream دو خط تولید جدید کارت گرافیکی به نامآ‌های ATI FirePro و AMD FireStream را راهآ‌اندازی کرد تا به صورت کاملاً حرفهآ‌ای کارتآ‌هایی طراحی کند که نهایت راندمان را براساس Stream به ارمغان بیاورد.

      ATI Avivo
      Avivo هم نمونهآ‌ای از کاربردهای قابلیت Stream است که توسط ATI برای تبدیل فرمتآ‌های مختلف فایلآ‌های ویدیویی به یکدیگر عرضه شده است. Avivo معادل Badaboom شرکت nVIDIA است.
      Avivo در GPUهای سری Radeon R520 به بعد ارایه شده است. Avivo برای برداشتن بار پردازشی از دوش پردازنده اصلی طراحی شده است. از جمله این بار پردازشی میآ‌توان عملیات رمزنگاری یا رمزگشایی فایلآ‌های ویدیویی
      (Video Decoding/Encoding) و پردازشآ‌های محاسباتی سنگین را نام برد. اگر با سیستمی که دارای یک GPU با قابلیت Avivo است، اقدام به پخش و کدگشایی یک فایل ویدیویی توسط نرمآ‌افزار خاص Avivo کنید، میآ‌بینید که درصد استفاده از پردازنده اصلی بسیار کمتر از حالتی است که از نرمآ‌افزارهای رایج استفاده میآ‌کنید.
      نکته جالب آنکه ATI این نرمآ‌افزار را برخلاف nVIDIA به صورت رایگان عرضه میآ‌کند.

      تست Avivo
      ما در لابراتوار تصمیم گرفتیم که به ارزیابی قدرت GPU در کاربردهایی که تا به حال توسط CPU انجام میآ‌شده است، بپردازیم.
      معمولاً شرکتآ‌های ارایه کننده فناوریآ‌های جدید کمی در مورد نوآوریآ‌های خود اغراق میآ‌کنند و ATI و nVIDIA هم از این قائده مستثنی نیستند.
      هر دو شرکت ادعا میآ‌کنند که مثلاً در مقوله تبدیل فرمتآ‌های مختلف فایلآ‌های ویدیویی به یکدیگر، حدود 20 برابر نسبت به نرمآ‌افزارهای رایج که از CPU استفاده میآ‌کنند، سریعآ‌تر عمل میآ‌کنند. البته تنها قابلیتی که فعلاً میآ‌توان تست کرد، همان تبدیل فایلآ‌های ویدیویی است، چرا که نرمآ‌افزار آن توسط شرکتآ‌های فوق ارایه شده است.
      تست با فرمتآ‌های مختلف
      ما برای تست از یک فایل 200 مگابایتی با فرمت MPEG2 و یک فایل یک گیگابایتی با فرمت VOB (فرمت DVD) استفاده کردیم و آنها را به فرمتآ‌های مختلف تبدیل کردیم. هر تبدیل را یکبار با نرمآ‌افزار ATI Avivo و یکبار با نرمآ‌افزار Main Concept Reference تکرار کردیم و نهایت دقت را در یکسان بودن تمامی تنظیمات تبدیل انجام دادیم. بدیهی است که برای کدینگ ATI Avivo از GPU و Main Concept Reference از CPU استفاده میآ‌کنند. نتایج آزمایشات به شرح زیر است:
      تبدیل فایل 200 مگابایتی با فرمت MPEG2 به فرمتآ‌های مختلف:



      تبدیل فایل یک گیگابایتی با فرمت VOB به فرمتآ‌های مختلف:



      پس چرا راندمان، 20 برابر نشد؟
      همانطور که قبلاً اشاره شد، ATI و nVIDIA مدعی هستند که در تبدیل فرمتآ‌های مختلف فایلآ‌های ویدیویی به یکدیگر، حدود 20 برابر نسبت به نرمآ‌افزارهای رایج که از CPU استفاده میآ‌کنند، سریعآ‌تر عمل میآ‌کنند. اما آزمایشات ما این را نشان نمیآ‌دهد!
      البته با کمی تعمق میآ‌توان فهمید که چرا اینآ‌گونه نشده است.
      آنها اختلاف قویآ‌ترین GPU را با ضعیفآ‌ترین CPU در نظر میآ‌گیرند. بنابراین اگر از CPU قویآ‌تر و یا از GPU ضعیفآ‌تر استفاده کنیم، این اختلاف کاهش میآ‌یابد، هر چند همیشه و در همه حال GPU بهتر از CPU عمل میآ‌آ‌کند. در سیستم تست ما هم گرچه از کارت گرافیک خیلی خوبی استفاده کردیم، اما پردازنده خوبی هم داشتیم که به طبع مانع از ایجاد اختلاف فاحش میآ‌شد.
      ضمناً آنها کدینگی را در نظر میآ‌گیرند که بیشترین اختلاف را در GPU نسبت به CPU دارد (کدینگآ‌های مختلف، دارای نسبتآ‌های متفاوتی از اختلاف بین GPU و CPU هستند.)

      نتیجه
      استفاده از GPU به جای CPU علیآ‌رغم تمام محدودیتآ‌هایی که دارد، سرعت و راندمان بالایی را به ارمغان میآ‌آورد. اگر بتوان روزی تمامی پردازشآ‌های CPU را توسط GPU انجام داد، تحولی شگرف در سرعت پردازش به وجود میآ‌آید و دیگر چیزی به عنوان CPU وجود خارجی نخواهد داشت. البته مشروط بر اینکه برنامهآ‌ها قادر به ارسال تعداد زیادی دستورالعمل به GPU باشند و در سطح بسیار بالایی از پردازش موازی پشتیبانی کنند.
      اگر قصد خرید کارت گرافیکی دارید، حتماً مدلی که CUDA یا AVIVO را پشتیبانی میآ‌کند، خریداری کنید. هر چند با خرید اینآ‌ نوع کارتآ‌ها به تنهایی امکان استفاده از قابلیت فوق را ندارید، اما میآ‌توانید از برنامهآ‌هایی که برنامهآ‌نویسان و تولیدکنندگان براساس این قابلیت نوشتهآ‌اند، استفاده کنید و لذت سرعت بالا را حس کنید. مثلاً برنامهآ‌هایی که برای تبدیل فرمتآ‌های مختلف ویدیویی به یکدیگر وجود دارند، با استفاده از CPU این کار را انجام میآ‌دهند، حال آنکه برنامهآ‌های دیگری براساس CUDA یا AVIVO نوشته شدهآ‌اند که همان کار را بدون استفاده از CPU چندین برابر سریعآ‌تر انجام میآ‌دهند. ضمناً دوستداران بازی هم میآ‌توانند بازیآ‌های جدیدتر را که براساس قابلیت فوق عرضه میآ‌شوند، بسیار طبیعیآ‌تر و روانآ‌تر بازی کنند.
      به طور خلاصه میآ‌توان گفت که استفاده از GPU به جای CPU دو مزیت اصلی دارد:
      • سرعت بسیار بالاتر در انجام محاسبات
      • آزاد شدن CPU و امکان استفاده از آن در پردازشآ‌های دیگر

      کلام پایانی
      تا چندی پیش در جوامع علمی مطرح بود که پردازندهآ‌إ¾آ‌ای طراحی شود که دارای GPU هم باشد و برای کاربردهای سبک گرافیکی مورد استفاده قرار گیرد، اما حالا قضیه برعکس شده است. GPUها کار پردازنده را انجام میآ‌دهند.
      هر چند GPUها فعلاً تمامی پردازشآ‌های CPU را نمیآ‌توانند انجام دهند، اما دورنمای این فناوری چیز دیگری را نشان میآ‌دهد. آری، شمارش معکوس برای به تاریخ پیوستن CPU شروع شده است. البته نگارنده معتقد است که GPU جای CPU را نمیآ‌گیرد (به دلیل تفاوت معماری آنها و کاربردهای متفاوت آنها) بلکه GPU نقش پردازنده کمکی یا Coprocessor را بازی خواهد کرد، با این تفاوت که این پردازنده کمکی در بسیاری از پردازشآ‌ها از پردازنده اصلی قویآ‌تر عمل میآ‌کند!

      دیدگاه


        #4
        پاسخ : طرز کار GPU؟

        اطلاعات مفیدی بود واقعا دیدمون بازتر شد
        ولی هنوزم نفهمیدم CPU در چه سطحی اطلاعات رو به GPU واگذار میکنه برای پردازش و نهایتا نمایش تصویر؟
        این استاندارد ها یه چیز واحد هستند یا اینکه از شرکت به شرکت فرق میکنه؟
        اگه به سیر میکروکنترلر ها و SoC ها نگاه کنیم که بشه روشون سیستم عامل بالا آورد
        اولین موردی که بهش برخورد میکنیم مثلا at91sam9260 هست که اصلا سخت افزاری برای LCD درونش در نظر گرفته نشده
        یه مدل بالاتر از این at91sam9263 هست که یه رابط LCD هم براش در نظر گرفتند
        حالا سوال من اینه اون رابط چجوری کار میکنه
        و اینکه فرقش مثلا با omap4460 که GPU مدل PowerVR SGX540 داره چیه؟این GPU چجوری عمل میکنه که اون رابط LCD عمل نمیکنه
        در واقع سوالاتم در مورد نحوه عملکردش هست و با جوابش مثلا بشه طرح ساخت یه GPU رو ریخت نه صرفا اطلاعاتی در مورد اسامی و ...

        دیدگاه


          #5
          پاسخ : طرز کار GPU؟

          کار این دوتا از هم جداست. CPU محاسبات خودش رو انجام میده (و همچنان پردازنده اصلی سیستم هست) و GPU پردازندهآ‌ای اختصاصی طراحی شده برای انجام کارآ‌های گرافیکی.GPU ایجاد شد تا بار سنگین پردازشآ‌های گرافیکی از دوش CPU برداشته بشه.
          استانداردآ‌ها تا حدودی یکی هستند.ولی باید در نظر داشت که شرکتآ‌های مختلف برای رسیدن به هدفشون ممکنه از راهآ‌های مختلفی استفاده کنند.

          بنده هیچ آشناییآ‌ای با ARM ندارم ولی مطمئنا یک درایور LCD با یک پردازنده گرافیکی فرق داره.فکر نمیآ‌کنم درایور LCD توانایی پردازش های مربوط به امور گرافیکی رو داشته باشه.

          دیدگاه


            #6
            پاسخ : طرز کار GPU؟

            خوب CPU تا چه حد پردازش میکنه میده دست GPU؟
            یعنی اطلاعاتی که به GPU میده چی هست؟
            اطلاعات دونه دونه پیکسل ها رو میده به GPU تا اون روی پورت های مختلفش انجام بده یا اینکه مثلا میگه فلان نقطه مرکز دایره ای به شعاع فلان با رنگ فلان است
            یا سطحش بالاتر از این حرفاست؟

            دیدگاه


              #7
              پاسخ : طرز کار GPU؟

              GPU رو خیلی دست کم گرفتید.
              به این قسمت از متن توجه کنید:
              GPUهای جدید از بسیاری از ترانزیستورهایشان برای محاسبهء مربوط به گرافیک سه بعدی رایانهآ‌ها استفاده میآ‌کنند. آنآ‌ها در ابتدا برای شتاب دادن به حافظهء اصلی، نقشه برداری بافت ها، رندرکردن چند ظلعی های با اضلاع زیاد و به طور کلی چندگوشهآ‌ها استفاده میآ‌شدند
              ولی بعداً برای کارهای سختآ‌تر از جمله شتاب دادن به محاسبات هندسی مانند تبدیل رئوس از یک دستگاه مختصات به یک دستگاه مختصات دیگر استفاده شد. اخیراً با گسترش GPUآ‌ها , آنها سایه زنیآ‌های قابل برنامهآ‌ریزی و رئوس و بافتآ‌هارا اداره میآ‌کنند همچنین با بسیاری از عملگرآ‌های پشتیبانی شده توسط CPUآ‌ها و الحاقی و محاسبهء مقادیر واسط بین دو نقطه، با تکنیک (reduce aliasing) و Color Space با دقت بسیار بالا انجام میآ‌دهد.
              جالبه که بدونید که محاسبات مربوط به فیزیک بازی ها هم توسط GPU انجام میشه.
              رابطهآ‌ی CPU و GPU به این صورته:
              از تو(CPU) به یک اشاره T از ما(GPU) به سر دویدن!

              دیدگاه


                #8
                پاسخ : طرز کار GPU؟

                سلام
                مطالب بالا خوب بود ممنون
                Gpu ها حتما یک سری دستوراتی دارند
                دنبال دستورات اجرایی gpu ها هستم
                دوستان می تونید کمکم کنید

                دیدگاه

                لطفا صبر کنید...
                X