قبل از نوشتن مطلب دوستان زیادی درخواست ادامه مقاله های ویندوز سرور ۲۰۰۸ مخصوصا Active directory را دارن. باید به عرضتان برسونم آقا عرفان عزیز کار من را راحت تر کرده و خیلی از من بهتر در این زمینه پیش رفته. برای رسیدن به مطالب Active Directory اینجا را کلیک کنید.
اگر فکر میکنید ساختمان Directx چیز ساده ای هست اشتباه میکنید و در این مطلب من قابلیت Compute Shader را برای شما توضیح میدم. ولی قبل از اون شما باید کمی هم با Cuda آشنایی داشته باشید. من در این مطلب میخوام توضیح بدم تصویر زیر با چه ابزارهایی در Directx رندر میشود و یکی از قابلیتهای Directx 11 هست.

در این مطلب باید قبل از توضیح Compute shader برای شما CUDA را توضیح بدم البته توضیحی که من درباره Cuda میدم کاملا سطحی است و فقط جنبه معرفی داره ولی بهترین مرجع برای cuda خود سایت Nvidia هست و شما اصلا احتیاج به تهیه مرجعی بغیر از این یعنی کتاب و غیره ندارید. cuda را میتویند از لینک زیر در nvidia بررسی کنید.
http://www.nvidia.com/object/cuda_home.html#
باید این نکته را بگم که مایکروسافت تصمیم نداره بازار GPGPU را از دست بده و به همین دلیل زبان خودش را برای استفاده از GPU برای انجام سایر وظایف درکنار ترسیم تصاویر جذاب در اختیار داره. مدل انتخابی آنها همانند OpenGL شباهت زیادی به Cuda داشته و به این ترتیب صحت دیدگاه nvidia را تائید میکنه. برتری آنها در مقایسه با راه حل nvidia در قابلیت انتقال portability نهفته شده است. یک compute shader بر روی یک پردازنده گرافیکی nvidia یا ati و در آینده برروی larrabee کا خواهد کرد و بعلاوه از یکپارچه سازی بهتر با direct3d برخوردار هست. حتی اگه cuda از قبل پشتیبانی قابل ملاحظه ای را بدست آورده باشه.
و اما احتیاج هست توضیحی درباره cuda بدم.

cuda یک compiler است که میتوانید زبان های کامپوتر را در ان بنویسید تا ان
را برای شما ترجمه کند(اگه اشتباه نکنم مخصوص زبان c هستش) و با ان کارهای گرافیکی اجام دهید.(یه چیزی تو مایه های موتور ساختن).
این ویزگی مخصوص کارتها nvidia هستش.این برنامه بر اساس زبان open 64 نوشته شده.این برنامه ویزگی هایی مثل game physic (اتش.سیل.دود.و…..)را انجام میدهد.همچنین برای بالابردن سرعت برانامه های زیست شناسی استفاده میشود.به steam processing کمک میکند.
کارهای :
photon mapping(برای simulation دینامیک فوتون)
ray tacingدنبال کردن رد اشعه(دو منبع نور و بدون textures)
image processing(تشخیص اشیا)
free programing on computation garaphics
gpu engine for matlab(در برنامه matlab ساختن موتور گرافیکی با gpu)
visual tracker(دنبال کننده اشیا)
GPU Acceleration Solutions
Human Body 3D Surface Image Capture and ****ysis
Visual Molecular Dynamics: VMD(مودل ساز مولکول)
Astrophysical N-body Simulation(برای simulation نجومی)
Geographic Information System (GIS)(سیستم اطلاعات جغرافیایی)
GPULib: Library of Mathematical Functions(کتابخانه تابع های ریاضی)
A Neural Network on GPU (شبکه های عصبی روی gpu)
H.264 Video Encoder
و صدها چیز دیگر که فقط ۱۲۷ تای انها تو سایت nvidia ثبت شده.یعنی خرده های دیگه ای هم چیزهایی نوشتند که در سایت ان ثبت نشده.
همچنین در محاسبه حوادث طبیعی جغرافیایی مثل زلزله کاربرد دارد.
اشکالها
textrures renderin ساپورت نمیشود.
باز کردن گلوگاهی بین cpu و gpu که باعث پایین امدن سرعت میشود.
برنامه ها برای سرعت مطلوب حداکثر ۳۲ thread را run کند بهتر است.
ساپورت GeForce 8 series به بالا .quadro series.tesla series
برنامه توسط visual studio 7وvisual studio 8 .مایکروسافت run میشود.visual studio 9 در اخر سال ۲۰۰۸ به راه می افتد( در حال حاضر ساپورت نمیشود).
در ۱۹ اگست ۲۰۰۸ nvidia یه نسخه بتا برای mac os x گذاشته.
توضیحات بالا بیشتر جنبه اطلاعات داشت و همینطور که گفتم برای تخصص بر اون باید از لینک nvidia که گذاشتم استفاده کنید.

در این جا فشرده سازی بهبود یافته در بافت directx11 را میگم که بافت DXTC که اولین بار نزدیک به ۱۰ سال پیش با Directx6 معرفی شد. به سرعت در GPU ها نفوذ کرد و از آن زمان به بعد توسط برنامه نویسان مورد استفاده قرار گرفت. مسلما فناوری توسعه یافته توسط s3 graphics کاملا کارامد و هزینه سخت افزاری آن نیز نسبتا پائین بود که بدون تردید دلیل موفقیت آن را توضیح میدهد. اما دیگه الان نیازها تغییر کردند.DXTC با در نطر گرفتن فشرده سازی منابع تصویری HDR یا Normal Map طراحی نشده بود. بنابراین Direct3d با دو هدف روبرو شد: یکی فراهم کردن امکان فشرده سازی تصاویر HDR و محدود سازی Blockiness حالتهای DXTC سنتی. که برای اینکار هم مایکروسافت دو حالت جدید را به میان آورد: یکی BC6 برای تصاویر HDR و بعدی BC7 برای بهبود کیفیت فشرده سازی تصاویر LDR
اجازه بدید مطلب از این طولانی تر نشه تا بحث shader را در مطلب بعدی ادامه بدم.

برچسب ها: cuda directx gpu nvidia shader

٪ نظرات

  1. سلام عزیزم
    خوب بود، موفق باشی
    منم یه جایی درست کردم بد نیست!
    خوشحال میشم بتونم پذیرای تو باشم
    به امید دیدار

  2. سلام.یک مطلبی هست که فکر کنم شما به اون اشتباه اشاره کردین ,البته شاید هم من اشتباه فهمیدم و اون هم در مورد DirectX و CUDA هست.انویدیا CUDA رو برای رقابت با DirectX عرضه نکرده بلکه هدف از ارایه CUDA این هست که قدرت بسیار زیاد کارتهای گرافیکی رو که فقط برای پردازش اطلاعات گرافیکی مورد استفاده قرار میگیره به نحوی مهار کنه تا بتونن از اون برای پردازش مسایل علمی استفاده کنن و در اینجا مسئله ای که هست اینکه : چون معماری کارت گرافیکی با سی پی یو فرق میکنه تا قبل از CUDA نمیشد از قدرت این کارتها برای سایر کارها استفاده کرد اما حالا مسایل علمی رو با زبان سی مینویسن و با کامپایلر CUDA اون رو به صورت قابل فهم برای کارت گرافیک تبدیل میکنن,نتیجه اون هم این هست که سرعت پردازش به صورت قابل ملاحظه ای اضافه میشه و در نتیجه زمان هم به صورت قابل ملاحظه ای کم میشه (در بعضی موارد تا ۱۰۰ برابر).برای نمونه هم به این مثال توجه کنید:
    یک سی پی یو با چهار هسته و سرعت ۳ GHz در کل دارای ۱۲ GHz سرعت هست ولی یک کارت گرافیکی با ۱۲۸ هسته پردازشی با فرض سرعت ۱ GHz سرعتی در حدود ۱۲۸ GHz را به شما ارایه میده.البته در کنار این موضوع یک مطلب دیگه هم وجود داره و اون هم اینه که شما میتونید با هزینه کمتر از ۱۰۰۰۰ دلار آمریکا یک سوپر کامپیوتر قدرتمند داشته باشین با ۷۲۰ هسته با سرعت ۱.۳GHz.
    با ارزوی موفقیت برای شما
    در ضمن خیلی هم سایت باحالی دارین.

  3. دوست عزیزم مهدی جان تشکر بخاطر نظرکامل و توضیحات عالی شما.
    ولی فکر کنم شما اشتباه مطلب را برداشت کردید من در این مطلب که نوشتم توضیح دادم که مایکروسافت راه حلی برای کاملتر کردن cuda بیان کرده که خود nvidia هم بهش نتونسته بود برسه و حتی قید کردم که اینکار مایکروسافت صحت دیدگاه nvidia را تائید میکنه. من نمیدونم کدام قسمت باعث اشتباه شما شده است. البته این بحث هنوز ادامه داره و در مطلب بعدی راجع به directx من باز هم خواهم نوشت.
    در پایان از لطف و توجه شما بسیار سپاسگذارم.

  4. آقای مختاری، از لطف شما بسیار ممنونم… بنده فقط مقدمه ای کوتاه نوشتم…. قطعا مطالب شما بسیار آموزنده تر و جالب تر است. این مطالب DirectX شما ظاهرا تنها مطالب درست حسابی هست که میشه به فارسی پیدا کرد… از اونجایی که من در این خصوص هیچ اطلاعاتی ندارم تو هر پستی کلی سوال برام پیش می آید که البته با سرچ یا پست های بعدی برطرف میشن! بی صبرانه منتظر پست های بعدی هستم چرا که این بار دیگه قیافم مثل ؟ شد.

  5. عرفان عزیزم
    از لطف شما بسیار سپاسگذارم شما استاد ما هستید.
    اما درباره directx باید گفت که خودش یک دریا هست و این توضیحات زیاد جایی از آن را پر نمیکنه.
    اینکه بعضی از مواقع شما تعجب میکنید و مطلب را متوجه نمیشوید بخاطر این هست که OpenGL را نمیشناسید و از ساختمان آن آگاهی ندارید. یعنی درواقع مبانی کار opengl هست.
    برای شما آرزوی سلامتی میکنم.

  6. […] پردازنده های قبلی خود nvidia است. تعداد واحدهای سایه زنی cuda 512 عدد. رابط حافظه ۳۸۴ بیتی و حافظه GDDR5 با حداکثر […]

  7. […] بعدی compute shader است در مورد compute shader و تکنولوژی cuda توضیح کاملی قبلا دادم در اینجا یه خلاصه […]

  8. […] بعدی compute shader است در مورد compute shader و تکنولوژی cuda توضیح کاملی قبلا دادم در اینجا یه خلاصه […]

  9. […] ۳ مورد استقبال nVIDIA است و یکی دیگر از موارد آن میتواند تکنولوژی cuda باشد. عصر کامپیوتر بصورت عجیبی درحال تبدیل شدن […]

  10. […] ۳ مورد استقبال nVIDIA است و یکی دیگر از موارد آن میتواند تکنولوژی cuda باشد. عصر کامپیوتر بصورت عجیبی درحال تبدیل شدن […]

پیام بگذارید

ما را در شبکه های اجتماعی دنبال کنید

© تمامی حقوق برای علی مختاری محفوظ است.

تماس با من

میدان جمهوری اسلامی ، جنب بانک مسکن ، مجتمع اداری تجاری نگین

۰۳۱-۹۱۰۱۵۰۶۲ 

info@alimokhtari.name