قابل توجه کاربران گرامی: تاپیک معرفی اعضاء برای آشنایی بیشتر با یکدیگر (حتما شرکت کنید) لینک
نمایش نتایج: از 1 به 5 از 5
Like Tree20Likes
  • 11 Post By TERRORIST
  • 5 Post By TERRORIST
  • 4 Post By TERRORIST

موضوع: ***نگاهی متفاوت به D3D12 یا Direct X 12***

  1. #1
    Moderator
    TERRORIST آواتار ها
    تاریخ عضویت
    Sep 2012
    محل سکونت
    هر جایی که عملیات تروریستی باشه.
    نام واقعی
    Behzad
    نوشته ها
    2,023
    تشکر شده 14,918 بار در 2,102 پست
    TERRORIST آنلاین نیست.

    ***نگاهی متفاوت به D3D12 یا Direct X 12***






    درود دوستان

    قصد دارم در این این تاپیک اقدام به معرفی D3D12 بپردازدم قابلیت خاص و ویژه برای سازندگان و توسعه دهندگان (برنامه نویسان) در هر صعنت و حوزه ای که مشغول به فعالیت هستند، D3D12 مانند یک دیوان بزرگ همراه با منابع و کتابخانه های بسیار بزرگ هستند که توسط سازنده بزرگ آن MICROSOFT بنا نهاده شده و در قالب کدها در IDM خود قرار داده است که افراد علاقهمند و توسعه دهندگان بتوانند با زبان های برنامه نویسی قدرتمندی همچون #C و ++C که اجازه دسترسی سطح پایین را به کاربران و توسعه دهندگان برای کاهش سربار ها و افزایش کارایی را برای شرکتها و سازمان ها مربوطه فراهم می کند یکی از اهداف بزرگ D3D12 استفاده از قابلیت Multi-Threading می باشد.

    همگی می دونیم DirectX 12 یک API هستش که به توسعه دهندگان این اجازه را می دهد که بتوانند دسترسی سطح پایین به منابع سخت افزاری و همچنین افزایش راندمان سخت افزارهای و کاهش سربار ها چه پردازنده اصلی و پردازنده گرافیکی را در مبحث Multi-Threading همراه داشته باشد. و همچنین مدیریت صحیح و کارامد از منابع قرار گرفته در حافظه ها اصلی سیستم ها استفاه از DX12 این اجازه و قدرت را می دهد که ما بتوانیم صف های محاسباتی بیشتری را در اختیار داشته باشیم که بتوانیم با استفاده از چندین حالت Pipeline قدرت بیشتری را ارائه کنند و همچنین اجازه بدهند که پردازنده های گرافیکی کاهش سربار کمتری و اجازه اجرای وظایف را داشته باشند.

    D3D12 یک زبان برنامه نویسی جدید هستش که قطعا اجازه می دهد ما افزایش کارایی را در بین فعالیت های گرافیکی که برنامه نویسان گرافیکی انجام می دهند رخ دهد D3D12 قابلیت استفاده کامل از Multi-Threading و Multi-Cores را داراست همین باعث افزایش کارایی و کاهش زمان تاخیر می شود مخصوصا در همگام سازی فعالیت های بین CPU و GPU،

    برای نوشتن DX12 نیازی به DX11 نیستش چرا که DX12 ویژگی جدیدی را همراه خواهد داشت شامل 200 متد که توسعه دهندگان می توانند کدهای DX11 خود را به سمت DX12 کوچ داده و انها را استفاده کنند.

    ابتداء نخ یا Thread تعریف می کنم: یک رشته نخ ، یک واحد پایه ای از بهره وری CPU است که شامل بر یک ID (شناسه) برای رشته نخ، یک شمارنده برنامه ، یک مجموعه ریجستر و یک پشته است. منابع سیستم عامل میان رشته نخ ها به اشتراک گذاشته می شوند. اگر یک فرایند چندین رشته نخ داشته باشد، می تواند چند وظیفه را در یک زمان انجام داده و اجراء می کند. بسیاری از بسته های نرم افزاری که در PC ها امروزی اجراء می شوند چند رشته نخی هستند و یک برنامه کاربردی معمولا به صورت یک فرایند مجزاء یا چندین نخ کنترل پیاده سازی می شود.

    بیشتر Kernel یا هسته سیستم عامل ها هم اکنون به صورت چند رشته نخی یا Multi-Threading هستند که در آنها چندین رشته نخ در هسته اجراء می شود و هر رشته نخ یک وظیفه را انجام می دهد.

    از فواید برنامه نویسی Multi-Threading را می توان به موارد زیر اشاره کرد:

    الف: پاسخ دهی : چند رشته نخی مانند استفاده در برنامه کاربردی اجازه می دهد که یک برنامه در صورتی که بخشی از آن مسدود شده باشد و یا زمان اجرای طولانی داشته باشد بتواند پاسخ دهد لذا قابلیت پاسخ دهی به کاربر افزایش می یابد.

    ب: اشتراک منابع: فرایند ها تنها از طریق تکنیک هایی مانند حافظه اشتراکی TMU و انتقال پیغام می توانند منابع را به اشتراک بگذارند ، این تکنیک بایستی به طور صریح توسط برنامه نویس اجراء شود.

    ج: مقرون به صرفه بودن: تخصیص حافظه و منابع برای ایجاد فرایند عملیات پر هزینه ای هستش، از آنجایی که رشته نخ ها منابع فرایند را به اشتراک می گذارند ایجاد رشته نخ ها و تعویض متن Context SW آن ها از نظر هزینه بسیار مهم است ایجاد نخ ها و تعویض متن آن ها نسبت به همان عملیات برای فرایند ها زمان کمتری را مصرف می کند.

    د: مقایس پذیری: فواید چند رشته نخی در معماری چند پردازنده ای که در آن رشته نخ ها می توانند به طور موازی بروی پردازنده های متفاوت اجراء شوند به مراتب بیشتر است. یک فرایند تک رشته نخی تنها بروی یک پردازنده می تواند اجراء شود. چند رشته نخی در یک ماشین چند پردازنده ای قابلیت توازی یا موازی را افزایش می دهد.


    برنامه نویسی به صورت Multi-Core و Multi-Thread:

    روندی که در طراحی سیستم ها از سمت شرکتهای سازنده نرم افزاری و سخت افزاری صورت گرفته استفاده از قابلیت چند نخی و چند هسته ای می باشد همراه با هسته های محاسباتی در یک تراشه یا Chip می باشد. مانند یک پردازنده Intel Corei7 6700K که دارای چهار هسته فیزیکی و هشت رشته نخی می باشد.

    امروزه سیستم های عامل (ویندوز و لینوکس) هسته ها را به صورت یک پردازنده واقعی و مجزاء شناسایی و تلقی می کنند.
    برنامه نویسی چند رشته نخی مکانیزمی را برای استفاده موثرتر از هسته های سیستم فراهم می کند و همروندی را افزایش می دهد.


    نمونه ای از تعریف تک هسته ای برای اجرای وظایف ، سیستم عامل در یک زمان تنها یک رشته نخ را اجراء می کند و در یک سیستم چند نخی همروندی به این معنی است که رشته نخ ها می توانند به طور توازی اجراء شوند و سیستم می تواند به هر هسته یک رشته نخ انتساب کند.

    طراحان و توسعه دهندگان (برنامه نویسان) بایستی الگوریتم زمان بندی را برای استفاده از چندین هسته پردازشی بنویسند:


    برنامه نویسان برای کد نویسی در سیستم هایی که چند هسته ای Multi-Core می باشند باید چندین نکته مد نظر داشته باشند.

    الف: فعالیت های تقسیم شدنی: این مسئله درگیر درباره نواحی مجزایی هستند که بتوانند به طور همروند اجراء شوند.

    ب: توازن: افزودن بر تعیین فرایند هایی که به طور همروند اجراء می شوند برنامه نویسان بایستی تضمین نمایند که وظیفه کار یکسانی را بروی مقادیر یکسانی انجام می دهند.

    ج: جدا سازی داده ها: همانند برنامه های کاربردی که به وظیفه های مجزاء تقسیم می شوند داده های در دسترسی بایستی برای اجراء در هسته های مختلف قابل تقسیم باشد.

    د: وابستگی داده ها: داده های در دسترسی از جهت وابستگی میان وظیفه ها بایستی بررسی شود و تا نیازمندی های داده ای وظیفه ها به هم لحاظ گردد.











    ===============================


    ===============================





    ** کتابخانه های رشته نخ یا Thread Libary :


    یک کتابخانه رشته نخ ، یک API را برای ایجاد و مدیریت رشته نخ ها فراهم می آورد، برای یک پیاده سازی یک کتابخانه معمولا دو روش وجود دارد: روش اول: فراهم اوردن یک کتابخانه تماما در فضای کاربر و بدونه پشتیبانی هسته است تمام کدها و ساختارهای داده ها در فضای کاربر هستند.
    مانند آنچه که نرم افزار قدرتمند و بزرگ Visual Studio انجام می دهد.

    دوم: پیاده سازی یک کتابخانه هسته است که به طور مستقیم توسط سیستم عامل پشتیبانی می وشد در این روش کدها و ساختارهای داده همگی در سطح هسته قرار دارند و فراخوانی یک تابع در API جهت کتابخانه معمولا منجر به یک فراخوانی سیستمی به هسته می شود.

    مهمترین کتابخانه مورد استفاده که به طور گسترده استفاده می شود و همگی شاهد آن هستیم Win32 ( یک کتابخانه در سطح هسته سیستم عامل ویندوز می باشد).



    ** زمان بندی چند پردازنده ای:

    اگر چندین CPU در سیستم در دسترس باشند اشتراک بار امکان پذیر می شود اما این مسئله درباره زمان بندی پیچیده تر می گردد، حال شرکت محبوب Microsoft قصد دارد با استفاده از D3D12 این مسئله پیچیده را ساده تر کرده است.

    یک رویکرد برای زمان بندی یک سیستم چند پردازنده ای تمامی تصمیمات زمان بندی پردازش های Input و output برای CPU را همانند یک سیستم تک پردزانده ای دارد در حالی که فعالیت های سیستمی توسط یک پردازنده انجام میگیرد Master Server که پردازنده های Slave تنها کد کاربر را اجراء می کنند.

    ( چند پردازشی به صورت نا متقارن ، در این روش تنها پردازنده به ساختارهای داده سیستمی دسترسی دارد و این مطلب نیاز به اشتراک داده را کم می کند).

    رویکرد مهم در پردازنده ها استفاده از SMP یا Symmetric Multi-Processor (چند پردازشی متقارن) استفاده می شود که هر پردازنده خودش زمانبندی خود را انجام می دهد تمامی فرایندها ممکن است در یک صف آماده باشند یا این که هر پردازنده صف آماده خودش را داشته باشد. اکثر سیستم های عامل مانند : ویندوز 10 و 8.1 و 7 و لینوکس به طور مجازی از SMP استفاده می کنند.


    ** توازن باز در پردازنده و یا چند پردازنده :

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

    ** وابستگی به پردازنده:

    این موضوع در نظر بگیرید که اگر یک فرایند تنها در یک پردازنده خاص اجراء شود چه اتفاقی می افتد و همچنین اگر یک فرایند به یک پردازنده دیگری مهاجرت کند چه اتفاقی می افتد این مسئله به وابستگی پردازنده باز می گردد.

    معماری حافظه های اصلی یک سیستم می تواند وابستگی به یک پردزانده را تحت تاثیر قرار دهد. مانند NUMA که ما شاهد استفاده از دسترسی غیر مستقیم به حافظه های هستیم تکنولوژی می باشد که در پردازنده های ترکیبی AMD APU شاهدش هستیم که در آن یک پردازنده به برخی از از بخش های حافظه دسترسی سریعتری دارد و معمولا این مساله در سیستم هایی اتفاق می افتد خود نسبت به حافظه های بورد های دیگر دارند، اگر زمان بندی CPU سیستم عامل و الگوریتم مکانیابی باهم کار کنند فرایندی که به یک CPU خاص وابستگی دارد به حافظه اختصاص داده می شود که CPU مورد نظر در آن قرار دارد.

    ==============================================

    یکی از قابلیت های مهم DX12 استفاده از همگام سازی Synchronization و Multi Engine می باشد، که ما شاهده بکار گیری چنین قابلیت هایی در پردازنده های گرافیکی امروزی هستیم برای به اختصاص دادند فراینده ها به موتورهای محاسباتی و سه بعدی هر کدام از این Engine ها می تواند به صورت موازی یا توازی فرمان ها را اجراء کنند همراه با یکدیگر، شما با استفاده از DX12 می توانید به دسترسی دقیق و عمیق تری به Compute Engine و 3D Engine ها داشته باشید برای استفاده کردند از صف ها و فرمان ها.

    سیستم عامل دارای یک جدولی به نام جدول فراینده هاست که هر درایه از آن شامل فیلد های برای ذخیره محتوای ثباتهای CPU و نگاشت های حافظه و اولیت ها و ... میباشد که باعث افزایش کارایی و ساختن برنامه های کاربردی را ساده تر می کند.

    GPU Engine ها دارای چندین صف محاسباتی و سه بعدی و کپی هستند که نخ های پردازنده می توانند با آن در ارتباط باشند، مثلا صف های سه بعدی می توانند کنترل کنند هرسه GPU Engine ولی صف های محاسباتی می توانند کنترل کنند موتور های سه بعدی و کپی داشته باشند.

    در نمودار پایین شما مشاهده می کنید برای مثال Copy Engine ها می توانند کپی کنند برخی از Geometry لازم و ضروری برای رندرینگ یا مثلا 3D Engine ها نیز می توانند منتظر باشند تا کار رندرینگ Geometry ها به پایان برسد یا هر Geometry را رندر کنند و این وظایف به وسیله Compute Engine ها انجام میگیرد و نتیجه این می شود که موتور های محاسباتی Dispatch می کنند عملیات کپی در میان چندین Texture ها بروی یک Copy Engine که باعث می شود 3D Engine ها DRAW Call ها را ترسیم کنند.

    DirectX 12 این اجازه را به برنامه نویسان می دهد که بتوانند از رخ دادهای غیر منتظره و غیر بهینه در حین پردازش های جلوگیری کند که باعث تاخیر در مبحث همگام سازی می شود ، در عوض DX12 به توسعه دهندگان این اجازه را داده است که بتوانند از طریق دسترسی سطح بالا High Level که بتوانند همگام سازی بهتر و قابل اعتمادتری را ایجاد کنند.

    از مهم ترین ویژگی های DX12 در مبحث Multi Engine ها این می باشد که اجازه می دهد به استفاده از قابلیت ناهمگام یا Asynchronous که اجازه دسترسی سطح پایین را به Job های GPU می دهد این قابلیت این اجازه کار کردن با GPU با اولیت پایین را می دهد البته به صورت همزمان نتیجه به این صورت می شود که اگر در یک عملیات یک نخ از GPU در حالت فعال است سایر نخ ها در حالت مسدود یا Blocking قرار نگیرند.








    نیت ایجاد کردند چنین تاپیکی نگاه متفاوت به موضوع جذاب DirectX 12 می باشد و قصد ندارم بحث برنامه نویسی و کدهاش اینجا مطرح کنم و اگر لازم باشه در جاهایی کدهاش قرار می دم. فعلا سعی میکنم موضوعات به صورت تئوری و قابل فهم برای کاربران و دوستان مطرح کنم. و درباره هر ویژگی DX12 خواهم نوشت.



    :::::: این تاپیک بروزرسانی می شود::::::::::
    ویرایش توسط TERRORIST : 24th July 2016 در ساعت 04:46 PM
    Olesius, ErfanDL, moc and 8 others like this.


    Motherboard : Asus X99-Deluxe-USB 3.1 Processor : Intel Core i7 6900K
    Main Memory : Gskill 4*8 Freq: 3200 MHZ 32 GB Graphics Card : Gigabyte GTX 1080 G1
    Cooling : Cooler Master MasterAir Maker 8 Power Supply : Cooler Master V-850 Full Modular



  2. 16 کاربر بابت این ارسال مفید از TERRORIST تشکر کرده اند:

    asdaf (8th October 2016),ATER (25th July 2016),ErfanDL (24th July 2016),First.Last (8th August 2016),golabettruter (24th July 2016),magiteq (24th July 2016),mmb2014 (24th July 2016),moc (24th July 2016),mohammad72 (27th December 2016),msover (24th July 2016),Olesius (25th July 2016),Optimus Prime (25th July 2016),overclock990 (25th July 2016),Reza Y (26th July 2016),SaeedSYS (28th July 2016),VFSDF (18th September 2016)



  3. #2
    Active Member
    golabettruter آواتار ها
    تاریخ عضویت
    Mar 2013
    سن
    39
    نوشته ها
    348
    تشکر شده 1,245 بار در 299 پست
    golabettruter آنلاین نیست.
    درود بهزاد جان یه تاپیک هم در مورد والکان بزنید بد نیست


    بله حتمنا درباره VULKAN هم در همین تاپیک خواهم نوشت.
    ویرایش توسط TERRORIST : 24th July 2016 در ساعت 11:57 PM


    Motherboard Processor
    Main Memory Graphics Card
    Cooling Power Supply

  4. 7 کاربر بابت این ارسال مفید از golabettruter تشکر کرده اند:

    mmb2014 (24th July 2016),mohammad72 (27th December 2016),msover (24th July 2016),Olesius (25th July 2016),Optimus Prime (25th July 2016),Reza Y (26th July 2016),TERRORIST (24th July 2016)



  5. #3
    Moderator
    magiteq آواتار ها
    تاریخ عضویت
    Sep 2012
    محل سکونت
    تهران
    نام واقعی
    عطا
    سن
    35
    نوشته ها
    3,185
    تشکر شده 16,693 بار در 3,031 پست
    magiteq آنلاین نیست.
    عالی بود........


    Motherboard Processor
    Main Memory Graphics Card
    Cooling Power Supply




  6. 5 کاربر بابت این ارسال مفید از magiteq تشکر کرده اند:

    mmb2014 (25th July 2016),mohammad72 (27th December 2016),Olesius (25th July 2016),Optimus Prime (25th July 2016),TERRORIST (24th July 2016)



  7. #4
    Moderator
    TERRORIST آواتار ها
    تاریخ عضویت
    Sep 2012
    محل سکونت
    هر جایی که عملیات تروریستی باشه.
    نام واقعی
    Behzad
    نوشته ها
    2,023
    تشکر شده 14,918 بار در 2,102 پست
    TERRORIST آنلاین نیست.



    درود دوستان قصد دارم درباره P THREAD ها صحبت کنم جزء اصلی و قابل استفاده در API ها هستند همچون D3D11 و D3D12 خواهد شد، توسعه دهندگان (برنامه نویسان) می توانند با زبان C و ++C اقدام به نوشتن و ایجاد رشته نخ ها به صورت همزمان کنند موضوعی که در D3D12 بسیار مهم و اصلا اصول و پایه D3D12 می باشد P Thread ها به مشخصه های رفتاری رشته نخ ها توجه می کنند و نه پیاده سازی آنها طراحان سیستم عامل ممکن است که مشخصه ها را به هر صورتی که میخواهند پیاده سازی کنند، بسیار از سیستم های عامل مشخصه های P Thread را پیاده سازی می کنند که از آن جمله می توان به Solaris ، لینوکس و ... اشاره کرد. تمای P thread ها به یک حافظه اصلی یا Share Memory دسترسی دارند هر P Thread دارای دارای داده های مربوط به خود می باشد در این بین توسعه دهندگان ( برنامه نویسان) مسئول همگام سازی و دسترسی Thread ها به داده ها هستند در حافظه اصلی یا Shared Memory هستند.


    Thread safeness ( نخ گروهی) چیست: اشاره دارد به برنامه های کاربردی که می توانند به صورت همزمان چندین Thread یا نخ به صورت همزمان بدونه
    clobbering که دسترسی و رقابت دارند برای در اختیار قرار گرفتن داد ها . زمانی که یک برنامه نویس یا توسعه دهنده یک برنامه چند نخی را ایجاد میکند که هر کدام از این نخ ها دارای کتابخانه نخ برای خود هستند که پیش از این در پست اول به آن اشاره کرده بودم ، کاربرد این کتابخانه به صورت خلاصه عرض کنم برای دسترسی و ویرایش داده ها در حافظه های اصلی یا حافظه های اشتراکی می باشد .
    قابل Multi Threading به این نکته اشاره می کند که هر کدام از این Thread ها می توانند به صورت همزمان و بدونه تداخل به داده ها در حافظه اصلی یا اشتراکی دسترسی داشته باشند.






    درباره کد زیر توضیحاتی می دهم، P Thread API پایه را برای ساختن یک برنامه چند رشته نخی نشان می دهد، این برنامه جمع اعداد صحیح غیر صفر را در یک رشته نخ مجزا محاسبه می کند در یک برنامه P Thread اجرای یک رشته نخ مجزا در یک تابع خاص آغاز می شود،


    #include <pthread.h>
    #include <stdio.h>




    void *inc_x(void *x_void_ptr)
    {


    /* increment x to 100 */
    int *x_ptr = (int *)x_void_ptr;
    while(++(*x_ptr) < 100);


    printf("x increment finished\n");




    return NULL;


    }


    int main()
    {


    int x = 0, y = 0;


    /* show the initial values of x and y */
    printf("x: %d, y: %d\n", x, y);


    pthread_t inc_x_thread;


    /* create a second thread which executes inc_x(&x) */
    if(pthread_create(&inc_x_thread, NULL, inc_x, &x)) {


    fprintf(stderr, "Error creating thread\n");
    return 1;


    }
    /* increment y to 100 in the first thread */
    while(++y < 100);


    printf("y increment finished\n");


    /* wait for the second thread to finish */
    if(pthread_join(inc_x_thread, NULL)) {


    fprintf(stderr, "Error joining thread\n");
    return 2;


    }




    printf("x: %d, y: %d\n", x, y);


    return 0;


    Motherboard : Asus X99-Deluxe-USB 3.1 Processor : Intel Core i7 6900K
    Main Memory : Gskill 4*8 Freq: 3200 MHZ 32 GB Graphics Card : Gigabyte GTX 1080 G1
    Cooling : Cooler Master MasterAir Maker 8 Power Supply : Cooler Master V-850 Full Modular



  8. 12 کاربر بابت این ارسال مفید از TERRORIST تشکر کرده اند:

    a.aryaiee (20th September 2016),amirsss (19th September 2016),asdaf (8th October 2016),ErfanDL (18th September 2016),First.Last (19th September 2016),golabettruter (18th September 2016),magiteq (18th September 2016),mahdi8063 (21st September 2016),mohammad72 (27th December 2016),Olesius (18th September 2016),Reza Y (24th December 2016),VFSDF (18th September 2016)



  9. #5
    Moderator
    TERRORIST آواتار ها
    تاریخ عضویت
    Sep 2012
    محل سکونت
    هر جایی که عملیات تروریستی باشه.
    نام واقعی
    Behzad
    نوشته ها
    2,023
    تشکر شده 14,918 بار در 2,102 پست
    TERRORIST آنلاین نیست.




    درود دوستان فرصتی یافت شد دست به قلم ببرم و درباره قابلیت بسیار مهم مانند Shader MODEL 6.0 صحبت کنم قابلیتی بسیار مهم در زمینه برنامه نویسی، قصد ندارم درباره کدها و شیوه برنامه نویسی صحبت کنم، توضیحاتی کوتاه و مفید خواهم داد درباره حالت سایه زنی نسخه ششم که می تواند گفت یک جهش بزرگ واقعا بزرگ در صنعت بازی سازی می تواند باشد اشاره کرد با ارائه شدن SM 6.0 از سوی شرکت محبوب Microsoft می تواند یک : کار برنامه نویسی برای توسعه دهندگان و فراگیر شدن DX12 اشاره کرد، استفاده از HLSL در برنامه نویسی باعث می شد که ما بتوانیم فقط وفقط داده هایی که بعدا به صورت اطلاعات برای ما نمایش داده می شوند به صورت تک فرایندی و تک نخی اجراء شوند با فراگیر شدن مبحث چند نخی و توازی و قابلیت های جدید تو مفسرها شرکت Microsoft بر آن شد که SM 6.0 را عرضه نماید تا بتواند در سریعترین زمان ممکن چند نخی و قابلیت توازی با کمتری تاخیر بروی GPU ها داشته باشید یعنی در واقع GPU های بتوانند توازی را در چندین Thread اجراء کنند، در واقع هدف اصلی Shader Model 6.0 بر ان بودش که بتواند سربار ها و مشکلاتی که در پردازش داده ها در فراینده های SIMD در یک محدوده یا یک حوزه قرار دارد را حذف نماید، استفاده از SM 6.0 باعث فشردگی در Stream ها می شود و همچنین قبل از SM 6.0 که داده ها بروی یک نخ اجراء می شدند حال با استفاده از SM6.0 که به صورت ویژگی هایی در SM 6.0 در زبان ++C اضافه شده است می توانند چندین داده بروی نخ ها به صورت همزمان اجراء شوند بروی یک پردازنده Multi Core و اجرای برنامه های کاربردی از طریق چندین مسیر صورت پذیرفته است در واقع این گونه می تواند گفت که کارت های گرافیکی امروزی دارای چند موتور مستقل با عملکرد و ویژگی ها خاص هستند که هر کدام از این موتور ها می توانند Command ها را به صورت توازی اجراء نمایند با یکدیگر ، ما با استفاده از DX12 و SM 6.0 می توانیم دسترسی بیشتر یا در واقع به اصطلاح مهندسین کامپیوتر دانه ریز کوچکتری به نخ ها برای افزایش کارایی و صف هایی همچون 3D و Compute و Copy داشته باشیم.



    Motherboard : Asus X99-Deluxe-USB 3.1 Processor : Intel Core i7 6900K
    Main Memory : Gskill 4*8 Freq: 3200 MHZ 32 GB Graphics Card : Gigabyte GTX 1080 G1
    Cooling : Cooler Master MasterAir Maker 8 Power Supply : Cooler Master V-850 Full Modular



  10. 5 کاربر بابت این ارسال مفید از TERRORIST تشکر کرده اند:

    asdaf (24th December 2016),golabettruter (24th December 2016),magiteq (24th December 2016),mohammad72 (27th December 2016),Reza Y (24th December 2016)



موضوعات مشابه

  1. Direct X چیست؟
    توسط AMD Radeon در انجمن کارت گرافیکی (Graphics Card)
    پاسخ: 6
    آخرين نوشته: 29th June 2014, 09:08 PM
  2. برسی کارت گرافیک ASUS 780GTX DIRECT CU II
    توسط magiteq در انجمن Nvidia
    پاسخ: 9
    آخرين نوشته: 10th September 2013, 09:38 AM
  3. پاسخ: 20
    آخرين نوشته: 11th August 2013, 09:20 PM
  4. .: MSI TwinFrozerIII VS ASUS Direct CUII :.
    توسط Mehdi_FXX در انجمن خنک کننده های هوا (Air Cooling)
    پاسخ: 15
    آخرين نوشته: 8th June 2013, 12:57 AM
  5. پاسخ: 12
    آخرين نوشته: 10th March 2013, 10:42 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •