Directx 11 قابلیت Compute Shader

نوشته شده توسط در فروردین ۴, ۱۳۸۸ در Microsoft Directx - ۱۰ نظر

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

http://cache.lifehacker.com/assets/resources/2006/10/hdr%20tutorial.png

در این مطلب باید قبل از توضیح 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 بدم.

http://farm1.static.flickr.com/8/8872579_27b2e5e41c.jpg?v=0

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 که گذاشتم استفاده کنید.

http://noisylime.com/wp-content/uploads/2007/03/hdr_example.jpg

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

مطالب مرتبط:

  • آیا directx 11 همان نسخه 10.1 است؟
    آنچه که خودم شخصا و nVIDIA و طرفدارانش باور داریم اینه که directx 11 نسخه پیشرفته directx 10.1 است. ولی مخالفان میگویند که directx 11 همان 10.1 نیست و بسیار کارمدتر است. مخالفان nVIDIA میگویند که nVID...
  • معرفی PCI Express 3.0
    فکر کنم در زمینه سخت افزار و تکنولوژی های سخت افزاری همیشه من نفر اول بودم و ندیدم هرموقع تکنولوژی جدید بیاد توی سایتهای فارسی زبان ازش چیزی نوشته بشه مگر اینکه بعدا از خارجیها کپی بشه. در گوگل جستجو ...
  • OpenGL به موفقیت جدید رسید! آیا جنگ دوباره آغاز میشود؟
    روزی روزگاری در همین وبلاگ صحبت از شکست openGL کردیم در همان مطلب هم به این قضیه پرداختم که طرفدارانش سعی دارند آن را زنده نگه دارند تا به تاریخ نپیوندد ولی الان تازه ترین خبر از openGL 3.2 منتشر شد و...
  • نکته برای IE8 و ویندوز ۷
    توی این مطلب چند نکته کوچک را میخوام توضیح بدم که توی این چندوقت کارکرد با ویندوز 7 و ie8 بهش رسیدم. و همینطور نظرات کاربران و سوالاتشان باعث شد به این چیزها دست پیدا کنم. ولی قبل از توضیح بگم گالر...
  • نقش DirectX 11 در ویندوز ۷
    من قبلا مطلب درباره directx و همینطور از ورژن 11 اون زیاد نوشتم چون موارد بسیاری را درباره directx نوشتم الان میتونم راحت یه مطلب تکمیلی برای directx 11 بنویسم. مطالب قبلی راجع به directx بازتاب خوبی ...
  • ساختمان گرافیک در ویستا و پیشرفت آن در ویندوز 7
    در اینترنت به هر حال مطالبی درباره ویندوز و بخصوص ویندوز 7 منتشر میشه که من به عنوان وبلاگ ویندوز باید چیزهایی بنویسم که تک باشه تا حفظ آبرو کنم. البته یه روزی میاد که همگان انقدر پیشرفت میکنند که یکی...
  • منتشر نشده های Directx 11
    تاکنون مطالبی که درباره Directx نوشتم نمیشه گفت مطالبی خیلی حرفه ای بود بلکه نگاهی سطحی بود به قضیه. تمام اجزایی که گفتم نکات اصلی میشه گفت بودند ولی چیزهای دیگه هم درباره این API هست که مایکروسافت هن...
  • Directx 11 و مدل 5 Shader
    نمیدونم چی شده که باعث شده من فقط جمعه ها به فکر نوشتن Directx بیفتم ولی حالا بیخیال. در یکی از وبلاگها یک مطلب خوبی به نام Microsoft Web Platform Installer پیدا کردم برام جالب بود و در لینک پیوندهای ...

در مورد نویسنده

Microsoft Certified System Engineer, Microsoft Certified IT Professional, Cisco Certified Network Associate, Certified Wireless Network Administrator

۱۰ نظر در "Directx 11 قابلیت Compute Shader"

  1. سحاب فروردین ۱۳, ۱۳۸۸ در ۱:۵۸ ق.ظ · پاسخ دادن

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

    مرورگر این کاربر Unknown Unknown سیستم عامل این کاربر Unknown Unknown
  2. مهدی فروردین ۱۳, ۱۳۸۸ در ۱:۵۹ ق.ظ · پاسخ دادن

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

    مرورگر این کاربر Unknown Unknown سیستم عامل این کاربر Unknown Unknown
  3. علی مختاری فروردین ۱۳, ۱۳۸۸ در ۱:۵۹ ق.ظ · پاسخ دادن

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

    مرورگر این کاربر Unknown Unknown سیستم عامل این کاربر Unknown Unknown
  4. عرفان طاهری فروردین ۱۳, ۱۳۸۸ در ۲:۰۰ ق.ظ · پاسخ دادن

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

    مرورگر این کاربر Unknown Unknown سیستم عامل این کاربر Unknown Unknown
  5. علی مختاری فروردین ۱۳, ۱۳۸۸ در ۲:۰۰ ق.ظ · پاسخ دادن

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

    مرورگر این کاربر Unknown Unknown سیستم عامل این کاربر Unknown Unknown

بازتاب‌های مربوط به این پست

  1. آیا directx 11 همان نسخه 10.1 است؟ | ویندوز من
  2. نقش DirectX 11 در ویندوز 7 | ویندوز من
  3. نقش DirectX 11 در ویندوز ۷ | ویندوز من
  4. معرفی PCI Express 3.0 | ویندوز من
  5. معرفی PCI Express 3.0 | وبلاگ تقلبی

یک نظر بدید