DirectStorage 1.1 با کاهش فشرده سازی GPU سرانجام در راه است


به ،وان بخشی از کنفرانس توسعه دهندگان مایکروسافت Ignite این هفته، تیم DirectX مایکروسافت چند پست وبلاگ منتشر کرده است که به روز رس، هایی را در مورد وضعیت پروژه های مختلف مرتبط با توسعه بازی ارائه می دهد. بزرگ‌ترین و جالب‌ترین آنها به‌روزرس، DirectStorage، API مایکروسافت برای فعال‌سازی سریع‌تر دارایی‌های بازی است. به طور خلاصه، به‌روزرس، 1.1 که مدت‌ها منتظر آن بودیم، که پشتیب، از فشرده‌سازی دارایی‌های GPU را اضافه می‌کند، سرانجام در راه است و مایکروسافت قصد دارد تا پایان سال جاری API را برای توسعه‌دهندگان منتشر کند.

به ،وان یک تازه‌سازی سریع، DirectStorage نسل بعدی API بارگیری دارایی بازی مایکروسافت است و برای بهره‌گیری از قابلیت‌های مدرن پردازنده‌های گرافیکی و سخت‌افزار ذخیره‌سازی طراحی شده است تا امکان انتقال کارآمدتر دارایی‌های بازی به طور مستقیم به GPU را فراهم کند. در بخش ورودی/،وجی، DirectStorage عملیات ورودی/،وجی دسته‌ای جدیدی را ارائه می‌کند که برای کاهش تعداد عملیات ورودی/،وجی منفرد طراحی شده‌اند و هزینه کلی ورودی/،وجی را کاهش می‌دهند. اما مهم‌تر از آن، DirectStorage همچنین فشرده‌سازی دارایی‌های GPU را فعال می‌کند (یا بهتر بگوییم، آن را فعال می‌کند)، که به دارایی‌های فشرده مدرن اجازه می‌دهد تا CPU را دور بزنند و در عوض روی GPU از حالت فشرده خارج شوند.

اهمیت DirectStorage در این است که مایکروسافت می‌خواهد رایانه‌های شخصی (و کنسول) بتوانند از زمان‌های دسترسی تصادفی پایین و نرخ انتقال بالای SSD‌های مدرن بهتر استفاده کنند و بازی‌ها را قادر می‌سازد تا به‌جای اینکه همه چیز را از قبل بارگذاری کنند یا رنج ،شند، به سرعت در دارایی‌های جدید جریان پیدا کنند. بارگذاری دارایی به میزان قابل توجهی کند می شود، همانطور که امروز می تواند اتفاق بیفتد. تحت پارادایم‌های فعلی توسعه بازی، CPU می‌تواند یک عامل تنگنا در افزایش نرخ ورودی/،وجی برای برآورده ، آنچه که SSD می‌تواند ارائه دهد، باشد، زیرا هزینه‌های قابل توجهی برای CPU برای ردیابی تعداد زیادی از عملیات I/O و همچنین فشرده‌سازی دارایی‌های بازی قبل از ارسال آن‌ها وجود دارد. روی پردازنده گرافیکی DirectStorage به ،ه خود برای به حداقل رساندن هر دوی این بارها طراحی شده است و در نهایت سعی می کند تا حد امکان CPU را از جریان دارایی بازی حذف کند.

فناوری DirectStorage قبلاً برای عرضه در سال 2020 روی کنسول‌های Xbox Series X/S Microsoft/s پیاده‌سازی شده بود، بنابراین تلاش‌های اخیر در مورد انتقال DirectStorage به ویندوز و در نظر گرفتن ا،یستم سخت‌افزاری غیرهمگن بوده است. در اوایل سال جاری، مایکروسافت DirectStorage 1.0 را عرضه کرد که بهبودهای دسته ای I/O را اجرا می کرد، اما قابلیت های فشرده سازی GPU را نداشت. اینجاست که DirectStorage 1.1 وارد خواهد شد، زیرا در نهایت دومین (و مهمترین) جنبه DirectStorage را برای رایانه های شخصی فعال می کند.

با اجازه دادن به GPUها برای رفع فشرده سازی دارایی های بازی، کل این فرآیند از CPU تخلیه می شود. این نه تنها CPU را برای انجام کارهای دیگر آزاد می کند، بلکه یک گلوگاه بالقوه مهم در جریان دارایی بازی را از بین می برد. از آنجایی که SSD های مدرن بسیار سریع هستند – به ترتیب صدها هزار IOPS و سرعت انتقال داده به 7 گیگابایت در ث،ه – CPU ضعیف ترین رابط بین SSD های سریع و GPU های موازی انبوه است. بنابراین تحت DirectStorage، CPU تقریباً به طور کامل قطع می شود.

تا آنجایی که مزایای عملکرد DirectStorage 1.1 وجود دارد، دستاوردهای کامل هم به سخت افزار استفاده شده و هم به میزان داده ای که یک بازی یا برنامه های کاربردی دیگر سعی در انتقال داده دارند بستگی دارد. انتظار می‌رود بازی‌هایی که حجم زیادی از داده را روی سیستم‌های بسیار سریع منتقل می‌کنند، بیشترین سود را از پشته کامل DirectStorage 1.1 داشته باشند، اگرچه بازی‌های س،‌تر نیز می‌توانند از زمان دسترسی سریع به SSD‌های NVMe بهره ببرند.

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

با حرکت در زیر هود، رفع فشرده‌سازی GPU DirectStorage از طریق مقدمه GDeflate، یک الگوریتم فشرده‌سازی با هدف عمومی، فعال می‌شود. در اصل توسط NVIDIA توسعه یافته است. GDeflate یک نسخه بهینه سازی شده برای GPU در Deflate است که به گونه ای طراحی شده است که بهتر با ماهیت موازی (و نه چندان سریالی) GPU ها هماهنگ شود.

DirectStorage نیز به ،ه خود، پشتیب، GDeflate را به دو روش مختلف پیاده سازی خواهد کرد. روش اول (و ترجیح داده شده) این است که چیزها را به درایورهای GPU بسپارید و از فروشنده GPU بخواهید آنطور که آنها می خواهند مراقبت کند. این به فروشندگان سخت‌افزار اجازه می‌دهد تا برای سخت‌افزار/معماری خاص مورد استفاده بهینه‌سازی کنند و در صورت وجود بلوک‌های پردازش سخت‌افزاری خاص، از آنها استفاده کنند. هر سه شرکت مشتاق هستند که این نمایش را در جاده ها به نمایش بگذارند، و به احتمال زیاد برخی از آنها (اگر نه همه) درایورهایی با قابلیت DirectStorage 1.1 قبل از اینکه API حتی برای توسعه دهندگان بازی ارسال شود، آماده خواهند کرد.

در صورت عدم موفقیت، مایکروسافت همچنین یک کمپرسور عمومی (اما بهینه) DirectCompute GDeflate ارائه می‌کند که می‌تواند بر روی هر پردازنده گرافیکی سازگار با DirectX12 Shader Model 6.0 اجرا شود. این بدان م،است که GDeflate به شکلی عملاً با هر پردازنده گرافیکی PC ساخته شده در 10 سال گذشته در دسترس خواهد بود – اگرچه انتظار می‌رود پردازنده‌های گرافیکی جدیدتر عملکرد بسیار بهتری ارائه دهند.

در غیر این صورت، تنها چیزهایی که در نهایت برای استفاده از فشرده سازی GPU – و به طور کلی DirectStorage 1.1 – مورد نیاز خواهد بود، ویندوز 10 1909 (یا جدیدتر) یا ویندوز 11 و همچنین یک دستگاه ذخیره سازی سریع خواهد بود. از نظر فنی، DirectStorage در برابر هر دستگاه ذخیره سازی، از جمله SATA SSD ها کار می کند، اما به صراحت برای سیستم هایی با استفاده از NVMe SSD بهینه شده است (و بهترین نتایج را در آن ارائه می دهد).

با این حال، توجه داشته باشید که اجرای DirectStorage برای مشاهده مزایای API به بازی‌های فردی بستگی دارد. این بدان م،است که نه تنها از قلاب های API لازم استفاده کنید، بلکه بازی هایی را با دارایی های بسته بندی شده با استفاده از الگوریتم جدید GDeflate ارسال کنید. سازگاری گسترده GDeflate به عقب به این م،ی است که توسعه دهندگان بازی اساساً می توانند در اینجا روی بازی های DX12 ضربه بزنند – هر چیزی که ارزش اجرای یک بازی جدید را داشته باشد از DirectStorage و GDeflate پشتیب، می کند – اما این واقعیت که شامل دارایی های بازی می شود به این م،ی است که پشتیب، کامل از DirectStorage 1.1 نمی توان به طور پیش پا افتاده به بازی های موجود اضافه کرد. توسعه‌دهندگان باید دارایی‌های بازی را برای GDeflate دوباره توزیع کنند (یا فشرده‌سازی کنند)، که مطمئناً قابل انجام است، اما از گیمرها می‌خواهد که بخش بزرگی از بازی را دوباره دانلود کنند. بنابراین گیمرها باید برنامه ریزی کنند که DirectStorage 1.1 را به ،وان یک ویژگی در بازی های آینده ببینند، نه اینکه به بازی های موجود تبدیل شود.

در نهایت، در مورد مخاطبان مایکروسافت (توسعه دهندگان)، اعلامیه این هفته مایکروسافت به این منظور است که آنها را تشویق کند تا برای API به روز شده قبل از انتشار آن در اوا، امسال آماده شوند. مایکروسافت در حال حاضر اسناد یا ابزارهای API را منتشر نمی کند، اما آنها توسعه دهندگان را تشویق می کنند تا با DirectStorage 1.0 شروع به کار کنند تا بتوانند گام بعدی را بردارند و پس از عرضه 1.1 در اوا، امسال، فشرده سازی GPU را اضافه کنند.


منبع: https://www.anandtech.com/s،w/17613/microsoft-directstorage-11-with-gpu-decompression-finally-on-its-way