در حین رویداد “سریع ترسناک” اپل، یک ویژگی بر خلاف هر چیز دیگری توجه من را جلب کرد: حافظه پنهان پویا. احتمالاً مانند اکثر افرادی که ارائه را تماشا می کنند، من یک واکنش داشتم: “تخصیص حافظه چگونه کارایی را افزایش می دهد؟”
اپل بر اساس آن است اولین تراشه جدید M3 حول یک ویژگی “سنگ بنا” که آن را Dynamic Caching برای GPU می نامد. توضیح ساده اپل مشخص نمی کند که Dynamic Caching دقیقاً چه کاری انجام می دهد، چه رسد به اینکه چگونه عملکرد GPU را در M3 بهبود می بخشد.
من عمیقاً در معماریهای GPU معمولی جستجو کردم و چند سؤال مستقیم فرستادم تا بفهمم Dynamic Caching دقیقاً چیست. در اینجا بهترین درک من از آنچه که بدون شک از نظر فنی متراکم ترین ویژگی است که اپل تا به حال به یک نام تجاری سیلی زده است.
حافظه پنهان پویا دقیقاً چیست؟

Dynamic Caching قابلیتی است که به تراشههای M3 اجازه میدهد فقط از مقدار دقیق حافظه مورد نیاز یک کار خاص استفاده کنند. در اینجا نحوه توصیف اپل در بیانیه رسمی مطبوعاتی آمده است: “Dynamic Caching، بر خلاف GPU های سنتی، استفاده از حافظه محلی را در سخت افزار در زمان واقعی اختصاص می دهد. با Dynamic Caching، تنها مقدار دقیق حافظه مورد نیاز برای هر کار استفاده می شود. این ابتدا یک صنعت، شفاف برای توسعه دهندگان و سنگ بنای معماری جدید GPU است. این به طور چشمگیری میانگین استفاده از GPU را افزایش می دهد، که به طور قابل توجهی عملکرد برنامه ها و بازی های حرفه ای را افزایش می دهد.
در مد معمولی اپل، بسیاری از جنبه های فنی به عمد مبهم هستند تا روی نتیجه تمرکز کنند. فقط کافی است بدون رد کردن سس مخفی یا گیج کردن مخاطبان با اصطلاحات فنی، به اصل مطلب پی ببرید. اما به نظر می رسد نکته اصلی این است که Dynamic Caching به GPU اجازه می دهد تا حافظه کارآمدتری داشته باشد. به اندازه کافی ساده، درست است؟ خوب، هنوز دقیقاً مشخص نیست که چگونه تخصیص حافظه “متوسط استفاده را افزایش می دهد” یا “به طور قابل توجهی عملکرد را افزایش می دهد.”
حتی برای تلاش برای درک Dynamic Caching، باید به عقب برگردیم تا نحوه عملکرد GPU ها را بررسی کنیم. برخلاف پردازندههای مرکزی، پردازندههای گرافیکی در مدیریت بارهای کاری عظیم به صورت موازی عالی هستند. این بارهای کاری Shader نامیده می شوند که برنامه هایی هستند که GPU اجرا می کند. برای استفاده موثر از یک GPU، برنامه ها باید a را اجرا کنند تن از سایه بان ها به یکباره شما می خواهید تا حد امکان از هسته های موجود استفاده کنید.
این منجر به یک اثر می شود که Nvidia تماس می گیرد دم.” باری از سایه بان ها به یکباره اجرا می شوند، و سپس استفاده از آن کاهش می یابد در حالی که سایه بان های بیشتری برای اجرا روی رشته ها ارسال می شوند (یا به طور دقیق تر، بلوک های رشته در یک GPU). این اثر در ارائه اپل با توضیح Dynamic Caching منعکس شد، زیرا استفاده از GPU قبل از به پایان رسیدن افزایش یافت.

این چگونه در حافظه بازی می کند؟ توابع روی GPU شما دستورالعمل ها را از حافظه می خوانند و خروجی عملکرد را در حافظه می نویسند. بسیاری از توابع نیز باید چندین بار در حین اجرا به حافظه دسترسی داشته باشند. برخلاف CPU که تاخیر حافظه از طریق RAM و حافظه نهان به دلیل سطح پایین عملکردهای موازی بسیار مهم است، تاخیر حافظه در یک GPU راحت تر پنهان می شود. اینها پردازنده های بسیار موازی هستند، بنابراین اگر برخی از توابع در حافظه هستند، برخی دیگر را می توان اجرا کرد.
این زمانی کار میکند که اجرای همه سایهزنها آسان باشد، اما حجمهای کاری سختگیرانه، سایهزنهای بسیار پیچیدهای خواهند داشت. زمانی که قرار است این سایه زن ها اجرا شوند، حافظه مورد نیاز برای اجرای آنها تخصیص می یابد، حتی اگر نیازی نباشد. GPU بسیاری از منابع خود را به یک کار پیچیده تقسیم می کند، حتی اگر این منابع به هدر بروند. به نظر می رسد Dynamic Caching تلاش اپل برای استفاده موثرتر از منابع موجود برای GPU است و تضمین می کند که این وظایف پیچیده انجام می شود. فقط آنچه آنها نیاز دارند
در تئوری، این باید میانگین استفاده از GPU را با اجازه دادن به وظایف بیشتر برای اجرای همزمان افزایش دهد، به جای اینکه مجموعه کوچکتری از وظایف سختگیرانه تمام منابع موجود برای GPU را از بین ببرد. توضیح اپل ابتدا بر روی حافظه تمرکز می کند و به نظر می رسد که تخصیص حافظه به تنهایی عملکرد را افزایش می دهد. از درک من، به نظر می رسد که تخصیص کارآمد اجازه می دهد تا سایه بان های بیشتری را به طور همزمان اجرا کنند، که سپس منجر به افزایش استفاده و عملکرد می شود.
استفاده شده در مقابل اختصاص داده شده
یکی از جنبه های اصلی که برای درک تلاش من برای توضیح حافظه پنهان پویا کلیدی است این است که چگونه سایه بان ها منشعب می شوند. برنامه هایی که GPU شما اجرا می کند همیشه ثابت نیستند. آنها می توانند بسته به شرایط مختلف تغییر کنند، که به ویژه در سایه زن های بزرگ و پیچیده مانند موارد مورد نیاز برای ردیابی پرتو صادق است. این سایه بان های شرطی باید منابع را برای بدترین سناریوی ممکن تخصیص دهند، به این معنی که برخی از منابع ممکن است به هدر بروند.
در اینجا چگونه است یونیتی انشعاب پویا را توضیح می دهد shaders در مستندات خود: “برای هر نوع انشعاب پویا، GPU باید فضای ثبت را برای بدترین حالت اختصاص دهد. اگر یکی از شاخه ها بسیار گران تر از دیگری باشد، به این معنی است که GPU فضای ثبت را تلف می کند. این می تواند منجر به فراخوانی های کمتر شود. برنامه سایه زن به صورت موازی که باعث کاهش عملکرد می شود.
به نظر می رسد اپل این نوع انشعاب را با Dynamic Caching هدف قرار داده است و به GPU اجازه می دهد فقط از منابع مورد نیاز خود استفاده کند نه اینکه آنها هدر بروند. این امکان وجود دارد که این ویژگی در جای دیگری نیز پیامدهایی داشته باشد، اما مشخص نیست که در زمانی که یک GPU وظایف خود را انجام می دهد، حافظه پنهان پویا کجا و چه زمانی شروع به کار می کند.
هنوز یک جعبه سیاه

البته، باید توجه داشته باشم که همه اینها فقط درک من است، که از نحوه عملکرد سنتی GPUها و آنچه اپل رسماً بیان کرده است، ترکیب شده است. ممکن است اپل در نهایت اطلاعات بیشتری درباره نحوه کارکرد همه اینها منتشر کند، اما در نهایت، جزئیات فنی حافظه پنهان پویا مهم نیست که آیا اپل واقعاً میتواند استفاده و عملکرد GPU را بهبود بخشد.
در پایان، Dynamic Caching یک اصطلاح قابل فروش برای ویژگی است که عمیقاً در معماری یک GPU قرار دارد. تلاش برای درک این موضوع بدون اینکه کسی باشد که پردازندههای گرافیکی را طراحی میکند، ناگزیر منجر به برداشتهای نادرست و توضیحات تقلیلدهنده میشود. در تئوری، اپل میتوانست برندسازی را کنار بگذارد و به معماری اجازه دهد خودش صحبت کند.
اگر به دنبال نگاهی عمیق تر به آنچه که Dynamic Caching می تواند در پردازنده گرافیکی M3 انجام دهد، بودید، اکنون یک توضیح احتمالی دارید. آنچه مهم است این است که محصول نهایی چگونه عمل می کند، و ما زمان زیادی نداریم تا اولین دستگاه های M3 اپل در دسترس عموم قرار گیرند تا همه ما بدانیم. اما بر اساس ادعاهای عملکرد و دموهایی که تاکنون دیده ایم، مطمئنا امیدوارکننده به نظر می رسد.
توصیه های سردبیران
-
M3 Pro جدید اپل ممکن است با کاهش غیرمنتظره ای همراه شود
-
اپل همه چیزهایی را دارد که برای تسلط بر بازی ها نیاز دارد – به جز بازی ها
-
M3 Max باعث می شود که MacBook Pro یک لپ تاپ تقریبا بی نظیر به نظر برسد
-
همه چیزهایی که در رویداد “سریع ترسناک” اپل اعلام شد: iMac، M3 و موارد دیگر
-
M3 iMac اینجاست، اما بیشترین تغییر درخواستی خود را ندارد
من عمیقاً در معماریهای GPU معمولی جستجو کردم و چند سؤال مستقیم فرستادم تا بفهمم Dynamic Caching دقیقاً چیست. در اینجا بهترین درک من از آنچه که بدون شک از نظر فنی متراکم ترین ویژگی است که اپل تا به حال به یک نام تجاری سیلی زده است.
منبع: https://www.digitaltrends.com/computing/apple-dynamic-caching-explained/