به گزارش خبرنگار حوزه دریچه فناوری گروه فضای مجازی باشگاه خبرنگاران جوان، به نقل از techspot، در سه سال گذشته، انویدیا تراشههای گرافیکی ساخته است که دارای هستههای اضافی هستند، فراتر از هستههای معمولی که برای سایه زنی استفاده میشود، این واحدهای مرموز که به عنوان هستههای تانسور شناخته میشوند، در هزاران رایانه شخصی رومیزی، لپ تاپ، ایستگاههای کاری و مراکز داده در سراسر جهان یافت میشوند. اما آنها دقیقاً چه هستند و برای چه مواردی استفاده میشوند؟ آیا واقعاً در کارت گرافیک به آنها نیاز دارید؟
ریزپردازندهها، صرف نظر از این که چه شکلی هستند، همه عملیات ریاضی (جمع، ضرب و غیره) را بر روی اعداد انجام میدهند، گاهی اوقات این اعداد باید با هم گروه بندی شوند، زیرا برای یکدیگر معنی دارند. به عنوان مثال، هنگامی که یک تراشه در حال پردازش دادهها برای ارائه گرافیک است، ممکن است با مقادیر صحیح منفرد (مانند +۲ یا +۱۱۵) برای یک عامل مقیاس بندی یا گروهی از اعداد نقطه شناور (+۰.۱، ۰.۵، +) سروکار داشته باشد. تانسور یک شی ریاضی است که رابطه بین سایر اشیاء ریاضی را که همه با هم مرتبط هستند، توصیف میکند، آنها معمولاً به عنوان یک آرایه از اعداد نشان داده میشوند که در آن میتوان بعد آرایه را مانند شکل زیر مشاهده کرد.
سادهترین نوع تانسور که میتوانید بدست آورید دارای ابعاد صفر و شامل یک مقدار واحد است که با افزایش تعداد ابعاد، میتوانیم به سایر ساختارهای رایج ریاضی برسیم:
۱ بعد بردار
۲ بعد ماتریس
به عبارت دقیقتر، تانسور یک مقیاس سنج ۰، ۰، ۰، یک بردار ۱، ۰، ۰ و یک ماتریس ۱، ۱، ۱ است، اما به خاطر سادگی و نحوه ارتباط آن با هستههای تنسور در پردازنده گرافیکی، ما فقط به تانسور به شکل ماتریس میپردازیم. یکی از مهمترین عملیات ریاضی که با ماتریسها انجام میشود، ضرب است. بیایید نگاهی بیندازیم که چگونه دو ماتریس، هر دو با ۴ سطر و ستون هم ارزش، با هم ضرب میشوند: ضرب همیشه همان تعداد ردیف ماتریس اول و همان تعداد ستون دومین ماتریس است. محاسبه محصول ماتریسی ساده و شامل مجموعهای از ضربات و جمعهای کوچک است و از آنجا که هر CPU موجود در بازار امروز میتواند هر دو این عملیات را انجام دهد، به این معنی است که هر دسکتاپ، لپ تاپ یا رایانه لوحی میتواند تانسورهای اصلی را اداره کند.
با این حال، مثال فوق شامل ۶۴ ضرب و ۴۸ جمع است. هر محصول کوچک به مقداری منجر میشود که باید قبل از انباشته شدن با ۳ محصول کوچک دیگر و محاسبه مقدار نهایی برای تانسور در جایی ذخیره شود؛ بنابراین اگرچه ضربات ماتریسی از نظر ریاضی ساده، اما از نظر محاسباتی فشرده هستند و باید از رجیسترهای زیادی استفاده شود و حافظه پنهان باید با تعداد زیادی خواندن و نوشتن کنار بیاید.
پردازندههای AMD و شرکت اینتل در سالهای اخیر پسوندهای مختلفی را ارائه کرده اند (MMX، SSE، AVX، در حال حاضر همه آنها SIMD هستند) که به پردازنده اجازه میدهد تعداد زیادی از نقاط شناور را همزمان کنترل کند، دقیقاً همان چیزی که ضربات ماتریسی نیاز دارند اما نوع خاصی از پردازنده وجود دارد که مخصوصاً برای انجام عملیات SIMD طراحی شده است: واحدهای پردازش گرافیکی (GPU).
در دنیای گرافیک، حجم عظیمی از دادهها نیاز به جابجایی و پردازش در قالب بردارها و به طور همزمان دارند. قابلیت پردازش موازی GPUها آنها را برای کار با تانسورها ایده آل میکند و امروزه همه آنها از چیزی به نام GEMM (ضرب ماتریس عمومی) پشتیبانی میکنند. در این عملیات دو ماتریس با هم ضرب میشوند و پاسخ آن با یک ماتریس دیگر جمع میشود، محدودیتهای مهمی در مورد فرمت ماتریسها وجود دارد و آنها حول تعداد سطرها و ستونهای هر ماتریس میچرخند.
الگوریتمهایی که برای انجام عملیات ماتریس استفاده میشوند، هنگام مربع بودن آنها بهترین عملکرد را دارند (برای مثال، استفاده از آرایههای ۱۰، ۱۰، ۱۰ بهتر از ۲، ۵۰، ۵۰ کار میکند) و اندازه آنها نسبتاً کوچک است، اما هنگامی که بر روی سخت افزاری که صرفاً به این عملیات اختصاص داده شده است پردازش شوند، خیلی بهتر کار میکنند.
در دسامبر ۲۰۱۷، انویدیا یک کارت گرافیک مجهز به GPU با معماری جدید به نام Volta منتشر کرد که هدف آن بازارهای حرفهای بود، بنابراین هیچ مدل GeForce هرگز از این تراشه استفاده نکرده است و چیزی که آن را خاص میکرد این بود که اولین پردازنده گرافیکی بود که هستههای آن فقط برای محاسبات تانسور بود.
هستههای تانسور Nvidia طوری طراحی شده بودند که ۶۴ GEMM را در هر چرخه ساعت بر روی ماتریس ۴، ۴، ۴ حمل میکردند که حاوی مقادیر FP۱۶ (تعداد نقاط شناور با اندازه ۱۶ بیت) یا ضرب FP۱۶ با افزودن FP۳۲ بود. اندازه این گونه تانسورها بسیار کوچک است، بنابراین هنگام پردازش مجموعه دادههای واقعی، بلوکهای کوچکی از ماتریسهای بزرگتر را خرد میکنند و پاسخ نهایی را ایجاد میکنند.
کمتر از یک سال بعد، انویدیا معماری تورینگ را راه اندازی کرد که این بار مدلهای GeForce با درجه مصرف کننده از هستههای تانسور استفاده کردند. این سیستم برای پشتیبانی از فرمتهای داده دیگر، مانند INT۸ (مقادیر صحیح ۸ بیتی) به روز شده بود، اما به غیر از این، آنها همچنان همانند ولتا کار میکردند.
در اوایل سال جاری، معماری Ampere اولین بار در پردازنده گرافیکی مرکز داده A۱۰۰ ظاهر شد و این بار Nvidia عملکرد (۲۵۶ GEMM در هر چرخه، نسبت به ۶۴) را بهبود بخشید، فرمتهای داده بیشتری اضافه کرد و توانایی رسیدگی به تانسورهای پراکنده (ماتریس ها) با مقدار زیادی صفر در آنها را ایجاد کرد.
برای برنامه نویسان، دسترسی به هستههای تانسور در هر یک از تراشههای Volta، Turing یا Ampere آسان است: کد به سادگی نیاز به استفاده از یک پرچم دارد تا به API و درایورها بگوید که میخواهید از هستههای تانسور استفاده کنید، نوع داده باید توسط هستهها پشتیبانی شود و ابعاد ماتریسها باید مضربی از ۸ باشد، مسلما پس از آن، سخت افزار همه چیز را اداره میکند.
هنگامی که ولتا برای اولین بار ظاهر شد، Anandtech با استفاده از سه کارت Nvidia برخی از آزمونهای ریاضی را انجام داد: ولتای جدید، یک کارت برتر مبتنی بر پاسکال و یک کارت قدیمی ماکسول. اصطلاح دقت به تعداد بیتهای مورد استفاده برای اعداد نقاط شناور در ماتریسها اشاره میکند که دو برابر ۶۴، ۳۲ واحد و ... است.
محور افقی به تعداد پیک عملیات FP انجام شده در ثانیه یا به اختصار FLOP اشاره دارد، تانسور در فیزیک و مهندسی بسیار مفید است و برای حل انواع مشکلات پیچیده در مکانیک سیالات، الکترومغناطیس و اخترفیزیک استفاده میشود، اما رایانههایی که برای خرد کردن این اعداد استفاده میشوند تمایل دارند عملیات ماتریسی را بر روی خوشههای بزرگ CPU انجام دهند.
زمینه دیگری استفاده از تانسورها، یادگیری ماشین به ویژه زیر مجموعه یادگیری عمیق است. اینها همه در مورد مدیریت مجموعههای عظیمی از دادهها در آرایههای عظیمی به نام شبکههای عصبی است. به ارتباطات بین مقادیر مختلف دادهها وزن خاصی داده میشود، عددی که بیانگر اهمیت آن ارتباط است؛ بنابراین هنگامی که نیاز به بررسی نحوه تعامل صدها یا هزاران ارتباط دارید، باید هر قطعه داده در شبکه را در همه وزنهای مختلف اتصال ضرب کنید، به عبارت دیگر، باید دو ماتریس را با هم ضرب کنید.
به همین دلیل است که همه ابر رایانههای بزرگ یادگیری عمیق دارای GPU و انویدیا هستند، با این حال برخی از شرکتها تا آنجا پیش رفته اند که پردازندههای اصلی تانسور خود را تولید کرده اند. به عنوان مثال، گوگل اولین TPU (واحد پردازش تانسور) خود را در سال ۲۰۱۶ رونمایی کرد، اما این تراشهها آنقدر تخصصی هستند که نمیتوانند کاری جز عملیات ماتریسی انجام دهند.
اما اگر کارت گرافیک Nvidia GeForce RTX دارید ونمی توانید عمق شبکههای عصبی پیچشی را آزمایش کنید، هستههای تانسور برای شما چه کاربردی دارد؟ در بیشتر موارد، از آنها برای رندر معمولی، رمزگذاری یا رمزگشایی فیلمها استفاده نمیشود که ممکن است این طور به نظر برسد که پول خود را برای یک ویژگی بیهوده هدر داده اید. با این حال، Nvidia در هنگام معرفی DLSS - Deep Learning Super Sampling، هستههای تانسور را در بین محصولات مصرفی خود در سال ۲۰۱۸ قرار داد (Turing GeForce RTX).
یک فریم را با وضوح کم نمایش دهید و پس از اتمام، وضوح نتیجه نهایی را افزایش دهید تا با ابعاد اصلی صفحه نمایش مانیتور مطابقت داشته باشد (برای مثال ۱۰۸۰p، سپس اندازه آن را به ۱۴۰۰p تغییر دهید)، به این ترتیب از مزایای عملکرد پردازش پیکسلها برخوردار خواهید شد، اما همچنان یک تصویر زیبا در صفحه نمایش خواهید داشت.
کنسولها سال هاست که چنین کاری را انجام میدهند و بسیاری از بازیهای رایانهای امروزی نیز این قابلیت را ارائه میدهند. در Ubisoft's Assassin's Creed: Odyssey، میتوانید وضوح رندر را درست تا ۵۰ درصد رزولوشن مانیتور تغییر دهید، این بازی ۴K با حداکثر تنظیمات گرافیکی اعمال شده است.
اجرای با وضوح بالا به این معنی است که بافتها بسیار بهتر به نظر میرسند، زیرا جزئیات خوبی را حفظ میکنند. حالا ببینید وقتی بازی روی ۱۰۸۰p (۲۵ ٪ مقدار پیکسل نسبت به قبل) نمایش داده میشود، چه اتفاقی میافتد، سپس در انتها از سایه اندازها استفاده کنید تا آن را به ۴K گسترش دهید، اینجاست که DLSS نقش خود را ایفا میکند.
در اولین تکرار فناوری Nvidia، بازیهای منتخب مورد تجزیه و تحلیل قرار گرفتند، آنها را در وضوح پایین، وضوح بالا، با و بدون anti-aliasing اجرا کردند. همه این حالتها انبوهی از تصاویر را ایجاد کردند که در ابر رایانههای خود تغذیه میشدند که از یک شبکه عصبی برای تعیین بهترین روش تبدیل یک تصویر ۱۰۸۰p به یک تصویر با وضوح بالاتر استفاده میکردند.
باید گفت که DLSS ۱.۰ عالی نبود، زیرا جزئیات اغلب از بین میروند یا در برخی نقاط براق میشوند، در واقع از هستههای تانسور روی کارت گرافیک شما استفاده نمیکرد (که در شبکه Nvidia انجام شد) و هر بازی که از DLSS پشتیبانی میکند نیاز به بررسی خاص توسط Nvidia برای ایجاد الگوریتم ارتقاء دارد.
قابل توجهترین پیشرفت نسخه ۲.۰ که در اوایل سال ۲۰۲۰ منتشر شد، این بود که ابررایانههای انویدیا فقط برای ایجاد یک الگوریتم ارتقاء عمومی مورد استفاده قرار گرفتند. در نسخه جدید DLSS، از دادههای فریم رندر شده برای پردازش پیکسلها (از طریق هستههای تانسور GPU) با استفاده از مدل عصبی استفاده میشود.
نکته دیگر این که ردیابی اشعه بسیار سخت است، بنابراین توسعه دهندگان بازی برای ارائه عملکرد قابل اجرا باید تعداد پرتوهای پرتاب شده و برگشتی را در یک صحنه محدود کنند. این فرایند میتواند منجر به ایجاد تصاویر دانه دار نیز شود، بنابراین باید الگوریتم denoising اعمال شود که بر پیچیدگی پردازش میافزاید.
انتظار میرود که هستههای تانسور در اینجا با استفاده از خنثی سازی مبتنی بر هوش مصنوعی به عملکرد کمک کنند، اگرچه هنوز در اکثر برنامههای کاربردی که از هستههای CUDA برای این کار استفاده میکنند، تحقق نیافته است. از سوی دیگر، با تبدیل DLSS ۲.۰ به یک تکنیک افزایش موثر، میتوان از هستههای تانسور برای افزایش نرخ فریم پس از اعمال ردیابی اشعه بر روی صحنه استفاده کرد.
هستههای تانسور، سخت افزارهای بسیار خوبی هستند، اما فقط در تعداد کمی از کارتهای گرافیک مصرف کننده یافت میشوند. از آنجایی که انویدیا قبلاً عملکرد یک هسته تانسور را در جدیدترین معماری آمپر خود بهبود بخشیده است، به احتمال زیاد ما شاهد مدلهای میان رده و مقرون به صرفه تری نیز خواهیم بود.
در حالی که AMD و Intel آنها را در پردازندههای گرافیکی خود ندارند، اما ممکن است در آینده شاهد چیزی مشابه آنها باشیم. AMD سیستمی را برای وضوح یا افزایش جزئیات در فریمهای تکمیل شده، با هزینه عملکرد کمی ارائه میدهد، بنابراین ممکن است آنها فقط به آن پایبند بمانند به ویژه از آنجا که نیازی به ادغام توسط توسعه دهندگان نیست و فقط یک تعویض درایور است.
همچنین این بحث وجود دارد که فضای خالی تراشههای گرافیکی را میتوان صرف افزودن هستههای سایه پرداز بیشتر کرد، کاری که انویدیا هنگام ساخت نسخههای ارزان قیمت تراشههای تورینگ خود انجام داد، مانند GeForce GTX ۱۶۵۰ که هستههای تانسور را به طور کامل کنار گذاشتند و سایه زنهای اضافی FP۱۶ را جایگزین آنها کردند.
در هر حال، اگر میخواهید از عملکرد بسیار سریع GEMM و تمام مزایای آن استفاده کنید، دو انتخاب دارید: یک دسته CPU چند هستهای بزرگ یا یک GPU با هستههای تانسور.
بیشتر بخوانید
انتهای پیام/