این روزها تقریبا اکثر سرویسها مثل یوتوب، نت فلیکس و … همه به صورت نگهداری و پردازش محتوا ابری (Cloud) به کار خود ادامه میدهند. شرکت Nvidia به عنوان یکی از پیشتازان سختافزاری به خصوص در بخش گرافیک، فناوری پردازندههای گرافیکی مجازی خود به اسم Nvidia Grid را معرفی کرده است. این فناوری امکان استفاده از یک پردازنده گرافیک فیزیکی همراه با ماشینهای مجازی دیگر به وجود میآورد. بدین ترتیب ماشینهای مجازی مختلف به جای ارتباط یک به یک، حالا میتوانند از منابع موجود یک پردازنده گرافیکی به صورت مشترک استفاده کنند. برای دسترسی به این پردازنده گرافیکی مجازی باید از کارتهایی مثل Grid K1، Grid K2، Grid k340 و یا Grid K520 استفاده کنید.
به عنوان مثال، Grid K2 با استفاده از معماری Kepler ساخته شده و دارای 2 چیپ GK104-895 است. تعداد رشتههای پردازنده نیز به 2×1536 میرسد. نوع حافظه استفاده شده در این پردازنده GDDR5 است و قدرت پشتیبانی از 8 گیگابایت حافظه (2×4) در این پردازنده وجود دارد. برای استفاده از این نوع پردازندههای گرافیکی مجازی باید از نرمافزار Nvidia Virtual GPU Software استفاده کرد. این نرمافزار به ماشینهای مجازی این قدرت را میدهد که از کارت گرافیکی نصب شده به صورت اشتراکی بهره ببرند. امکان به اشتراک گذاری بین هشت ماشین مجازی تنها توسط یک پردازنده وجود دارد. این مقدار با استفاده از Nvidia Grid Board به 32 کاربر افزایش پیدا میکند. همچنین سرورهایی که از Nvidia Grid پشتیبانی میکنند، گام را فراتر گذاشته و از 64 کاربر پشتیبانی خواهند کرد!
اما Nvidia Grid چگونه کار میکند؟ این فناوری همانطور که اشاره شد برای به اشتراک گذاری قدرت یک پردازنده گرافیکی پیاده سازی شده و در کنار آن میتواند عملکرد بسیار مناسب و بدون هیچ مشکلی با نرمافزارهای مختلف سازگاری داشته باشد. برای استفاده بهتر و البته بدون مشکل هر ماشین مجازی که قصد استقاده از منابع پردازنده گرافیکی را دارد، بدون نیاز به نصب درایور مجزا میتواند به آن متصل شود. قبل از اتصال منابع مورد نیاز از طریق ماشین میزبان به درخواست کننده اعلام خواهد شد. هر کدام از این پردازندههای گرافیکی در موقع شروع به کار مقدار ثابتی از Frame Buffer را در اختیار خواهند داشت که هیچگاه تغیر نمیکند. همچنین هر ماشین مجازی از طریق کانال مرتبط به خود با منابع پردازنده گرافیکی ارتباط برقرار خواهد کرد. با توجه به پشتیبانی از تعداد کاربران مختلف، ممکن است برخی از کاربران از منابع در دسترس خودشان به صورت کامل استفاده نکنند و در سمت مقابل کاربری دیگر به میزان منابع بیشتری برای انجام پردازش نیاز داشته باشد. در اینجا Nvidia Grid با پیروی از قانون به اشتراک گذاری منصفانه که در CPU نیز از آن استفاده میشود، منابع در دسترس و بدون استفاده را به صورت موقت در اختیار یکی دیگر از ماشینها مجازی قرار میدهد. هر وقت ماشین مجازی اصلی درخواست دوباره برای منابع را به سرور ارسال کند، تقسیم منابع به حالت اولیه باز میگردد. برای جلوگیری از استفاده شدن منابع پردازنده گرافیکی و البته منابع سیستمی مثل Frame Buffer و یا حافظه، Nvidia Grid از مدیریت حافظه درون خود پردازنده گرافیکی پشتیبانی میکند. از طریق مدیریت حافظه در این بخش، هر کدام از ماشینها مجازی بر اساس قوانینی که برای آنها در Frame Buffer از قبل تعیین شده امکان استفاده از مقدار خاصی از حافظه و یا دیگر منابع را دارند. به این ترتیب ماشین مجازی که در حال پردازش یک مدل سه بعدی است نمیتواند بیشتر از ماشینهای دیگر از منابع سیستمی استفاده کند و همه چیز از قبل طبق جدولی خاص تعیین شده است.