آيا CPU مرده است؟


 





 
همزمان با عرضه پردازنده هاي 32 نانومتري اينتل با کد Westmere که از فشرده ترين و مؤثرترين هسته هايي که تا به حال ساخته شده، استفاده مي کند، ممکن است فکر کنيد که اينتل به قله تکنولوژي کامپيوتر دست پيدا کرده است. اينتل اساساً پردازنده هاي جديد خود را به عنوان قلب سيستم هاي PC نسل بعدي عرضه مي کند.
هرچند که همه با اين موضوع موافق نيستند. در حالي که اينتل در حال جلب مشتري براي Westmere است، Nvidia قصد دارد سخت افزار گرافيکي جديد خود به نام Fermi را عرضه کند که نه تنها قرار است تصاوير بصري نسل بعدي را تحويل دهد بلکه رقيبي جدي براي قدرت پردازشي پردازنده هاي عادي محسوب مي شود.
اين نوآوري هاي جديد، بلندپروازانه به نظر مي رسند. اما اين کمپاني بحث هاي تکنيکي متقاعدکننده اي دارد و قصد دارد نشان دهد توان پردازشي يک GPU چگونه مي تواند براي چيزهايي بيش تر از بازي مورد استفاده قرار گيرد. آيا سال 2010 سالي خواهد بود که در آن پردازنده در سايه سخت افزارهاي گرافيکي قرار مي گيرد؟
پردازنده هاي فوق العاده پرقدرتي که نوعاً در PCهاي مدرن يافت مي شوند براي کاربردهاي آفيس و مرور اينترنت ضروري نيستند. بله، اگر شما بخواهيد يک بانک اطلاعاتي بزرگ را خرد کنيد، يا ويدئوي با کيفيت بالا را ويرايش نمائيد يک پردازنده سريع، کمک بزرگي براي شما خواهد بود. اما ظهور و فراگير شدن نت بوک ها نشان مي دهد که براي انجام بسياري از کارهاي روزانه يک پردازنده به ارزاني و سادگي Atom اينتل کاملاً کفايت مي کند.
وقتي موضوع تصاوير بصري به ميان کشيده مي شود تمام نت بوک هاي مبتني بر پردازنده Atom نوعاً راضي کننده نيستند: در فقدان توان پردازشي آن ها براي decode کردن و نمايش فايل هاي رسانه اي با کيفيت بالا و بازي هاي مدرن هيچ شکي وجود ندارد.
Nvidia معتقد است که شما مي توانيد با استفاده از يک پردازنده سبک نظير Atom و تلفيق آن با يک GPUي مجزا که براي انجام وظائف گرافيکي ساخته شده است، هر دو دنيا را با هم در اختيار داشته باشيد. در ماه مارس سال 2009، Nvidia چنين پلتفرم هيبريدي را تحت نام Ion عرضه کرد. Ben Berraaondo مدير بازاريابي Nvidia ادعا مي کند که اين پلتفرم مي تواند از ويدئوي HD شامل ويدئوي جرياني از You Tube يا Hulu، با Flash 10.1، استفاده کند و از بازي هاي رايج و پرطرف داري مثل Sims و World of Warcraft پشتيباني مي نمايد. و ما از قابليت هاي گرافيکي سيستم هاي کم مصرف مبتني بر Ion نظير نت بوک Samsung N510 و Asus Eee Box EB1501 nettop حيرت زده شديم.
تصور اين که در آينده، در اين سگمنت از بازار ممکن است پردازنده، تقريباً بي معني شود و سخت افزار گرافيکي بتواند تفاوتي عمده و قابل توجه بين مدل هاي مختلف کامپيوترها به وجود آورد، دور از ذهن نيست.

GPUهاي چند منظوره
 

هرچند که اين تنها يک بخش از داستان است. اگر يک GPU بتواند به پردازنده در decode کردن ويدئو و رندر صحنه هاي سه بعدي کمک کند، هيچ دليلي وجود ندارد که نتوان توان پردازشي آن را براي انجام ساير وظائف اختصاص داد. به مفهوم استفاده از يک پردازنده گرافيکي براي محاسبات غيرگرافيکي، GPGPU يا general-purpose GPU computing يا فقط GPU Computing گفته مي شود.
و اين، معاني بسياري دارد. پردازنده Core i7 اينتل، هشت execution core را به سيستم عامل عرضه مي کند( چهار تا از آن ها هسته هاي بصري شبيه سازي شده توسط Hyper Threading هستند)، در حالي که يک کارت گرافيکي ارزان قيمت 30 پوندي، ده برابر بيش تر يونيت پردازشي دارد که هرکدام فقط بخشي از توان مصرفي يک هسته CPU را به خود جذب مي کنند. اگر به سمت کارت هاي رده بالاتر برويد کارت هايي مثل Nvidia GTX 295 را پيدا خواهيد کرد که 480 هسته را در خود جاي داده اند. واضح است که با استفاده از اين ابزار، توسعه دهندگان مي توانند از سطحي از توان پردازشي موازي که يک پردازنده نمي تواند اميدوار باشد با آن رقابت کند بهره برداري نمايند. Berraondo مي گويد:« در حال حاضر، صنعت کامپيوتر با حرکت از CPU به GPU در حال ديدن چيزهايي در حوزه افزايش سرعت است که قبلاً حتي به گوش نشنيده بود. به عنوان مثال، کدگذاري ويدئويي بر روي يک GPU در مقايسه با يک CPU مي تواند ده برابر يا بيش تر سريع تر انجام شود».
GPU Computing کاربردهاي بسيار جدي تري هم دارد. يک مثال در اين زمينه Folding@home، يک پروژه کامپيوتري توزيعي است که به دنبال درمان بيماري هاي نظير سرطان، پارکينسون و فيبروز است. در سال 2008، Nvidia گزارش داد که براساس نتايج به دست آمده از تحليل هاي مستقل، محاسبات Folding@home بر روي GPUهاي اين کمپاني، 140 برابر سريع تر از برخي GPUهاي عادي امروزي انجام شده بود.

CUDA به ميدان مي آيد
 

سلاح سري Nvidia، Unified )Device Architecture(CUDA است که براي اولين بار در سال 2007 از آن پرده برداري شد و قابليت هاي زبان هاي برنامه نويسي آشنا نظير Java, C, Fortran را با عملکردهايي که انباشتن محاسبات به درون يک پردازنده گرافيکي Nvidia را براي توسعه دهندگان ساده تر مي کند افزايش مي دهد.
CUDA تنها راه موجود براي ايجاد نرم افزار مبتني بر GPU نيست: به عنوان مثال DirectCompute API مايکروسافت عملکردهاي برنامه نويسي را ارائه مي کند که فقط بر روي GPUهاي مدرن اجرا مي شود؛ OpenCL framework نيز که اساساً توسط Apple توسعه داده شده بود چنين وضعيتي دارد. البته رقيب Nvidia يعني AMD معتقد است که اين استانداردهاي باز( به جاي دنياي بسته CUDA) هستند که نمايان گر آينده هستند.
اما CUDA دو سال قبل از اين اينترفيس هاي باز، کار خود را آغاز کرده بود و Sanford Russell به عنوان مدير کل CUDA در کنفرانس تکنولوژي GPU در سال 2009 توضيح مي دهد که CUDA يک گزينه جذاب براي توسعه دهندگان است و از زبان هاي آشنايي مثل C پشتيباني به عمل مي آورد. او مي گويد:« شما سرتان را از پنجره خيابان هاي دره سيليکون بيرون مي کنيد و فرياد مي زنيد هرکسي که با زبان C آشنا است در اين طرف خيابان بايستد و هرکسي که از API استفاده مي کند آن طرف. افراد اندکي در طرف API هستند و بخش اعظم مردم در طرف ديگر خيابان يعني C قرار مي گيرند.»
Nvidia قصد دارد با عرضه دامنه جديدي از کارت هاي گرافيکي مبتني بر ساختار نوآورانه Fermi خود، CUDA را حتي از اين هم قوي تر کند. به گفته مدير ارشد اجرايي کمپاني Nvidia يعني Jen-Hsun Huang، کارت هاي Fermi اولين کارت هايي خواهند بود که با گرافيک و کد به طور يکسان رفتار مي کنند.پيشرفت هاي تکنيکي شامل يک L2 cache به اشتراک گذاشته شده و يک thread scheduler آن برد است که به Fermi کمک مي کنند کد را بسيار مؤثرتر از GPUهاي فعلي اجرا کند. اين موضوع باعث مي شود تا ما آينده اي را ببينيم که در آن CPU به تدريج به يک بخش سبک و نسبتاً کم اهميت از ساختار کلي PC تبديل خواهد شد در حالي که عملکردهاي بصري و محاسبات رياضي به شکلي عمده توسط يک GPUي قابل برنامه ريزي و موازي انجام خواهد شد. آيا اين جايي است که ما به سمت آن مي رويم؟ آيا قرار است توليدکنندگان پردازنده به نقش آفرينان فرعي صنعت PC تبديل شوند؟

محدوديت هاي GPU
 

تکنولوژي GPU هنوز نمي تواند در برخي زمينه ها با يک پردازنده سنتي رقابت کند. پردازنده هاي مدرن، براي اطمينان يافتن از اين که سيکل هاي ساعت به هدر نمي روند، داراي دستورالعمل هاي عمده و ويژگي هاي پيشرفته اي نظير out-of-order execution و speculative branching هستند. پردازنده در اجراي کد single-threaded پيچيده، بسيار بهتر عمل مي کند. و در حالي که پردازش داده هاي با حجم بالا ممکن است دقيقاً همان چيزي باشد که براي پروژه هاي تحقيقاتي و برنامه هاي کاربردي enterprise نياز داريم، وقتي موضوع کاربردهاي خانگي و تجاري به ميان مي آيد وظائف زيادي نيستند که واقعاً بتوانند از آن نفع ببرند( به جز نمونه هاي آشناي ويرايش ويدئو و transcoding).
اين نکته حياتي در اينتل فراموش نشده است. وقتي ما از مسئول بازاريابي محصولات اينتل Mike Abel سؤال کرديم که آيا وي کمپاني CUDA را يک تهديد محسوب مي کند يا نه، او پاسخ داد« در برخي از موارد ممکن است شما ببينيد که CUDA در مقايسه با CPU مزايايي ارائه مي دهد اما وقتي من به DirectCompute و چيزهايي مثل آن مي نگرم فکر مي کنم اين چيزي است که به درد ايستگاه هاي کاري high-end مي خورد». Computing با سرعت بالا يک سگمنت کاملاً متفاوت با جريان اصلي computing است و براي اين جريان اصلي، يک برنامه کاربردي نرم افزاري روش هاي بسيار متفاوتي جهت تحويل کارآيي، مثلاً multithreading دارد.
Abel نمي توانست با عمق بيش تري در مورد GPU Computing براي برنامه هاي کاربردي با سرعت و کارآيي بالا صحبت کند، اما شايد اين قابل انتظار بود: اينتل در حال حاضر مشغول جمع و جور کردن صدمات و لطمات حاصل از شکست کارت شبيه GPU خود، يعني Larrabee است که توسعه آن در ماه دسامبر متوقف شد. اما خود اين شکست تا حدود بسيار زيادي محدوديت هاي GPU Computing را به رخ مي کشد: هسته هاي Larrabee بسيار پيشرفته تر از پردازنده هاي Nvidia بودند و آن ها را قادر مي ساخت وظائف پيچيده تري را انجام دهند که در عين حال باعث گران تر شدن، مصرف انرژي بيش تر و برنامه ريزي دشوارتر آن ها مي شد.
اگرچه براي computing mainstream، آقاي Abel خوشحال بود اعلام کند تا جائيکه به اينتل مربوط مي شود براي اين که رقابت GPU computing را بي معني جلوه دهيم، قدرت پردازنده هاي اين کمپاني به اندازه کافي زياد هست. او ادامه مي دهد:« پردازنده در جبهه اصلي يک PC قرار دارد و ما باور داريم در همان جا باقي خواهد ماند.اگر کسي بخواهد بازي کند مي تواند از يک کارت گرافيکي مخصوص اين کار استفاده کند اما براي transcoding، آيا من بايد يک کارت گرافيکي 200 دلاري بخرم و يا پردازنده من براي انجام اين کار به اندازه کافي خوب هست؟ چيزي که ما مشاهده کرده ايم و چيزي که آزمايش کرده ايم نشان داده است که CPU بسيار رقابت برانگيز است و در برخي از موارد از کارآيي بهتري در مقايسه با چيزي که Nvidia و AMD قادر به تحويل دادن آن هستند برخوردار است.»
او ادامه مي دهد:« شايد چيز ارزشمندي در DirectCompute وجود داشته باشد. شايد استفاده هاي خاصي براي آن وجود داشته باشد، جاهايي که ممکن است خوب جواب دهد. من قصد ندارم بگويم، اين چيزي نيست که اينتل هيچوقت قصد ندارد از آن پشتيباني کند. ما فکر مي کنيم امروز يک راه حل بسيار رقابتي داريم اما هميشه سعي مي کنيم به بهترين نحو ممکن از تمام منابع موجود بر روي يک پردازنده بهره برداري کنيم. و اگر روش هاي خلاقانه اي براي انجام اين کار وجود داشته باشد مطمئناً آن ها را ارزيابي خواهيم کرد.»
اين يک اظهارنظر دلگرم کننده است و همان گونه که Roger Key تحليل گر Endpoint Technologies اشاره کرده است اينتل به سختي مي تواند چيزي به غير از اين بگويد. Key مي گويد:« اينتل واقعاً در جايگاهي نيست که بتواند يک پردازنده کاملاً موازي توليد کند. ساخت يک چيپ که از هر دوي اين کارآيي ها برخوردار باشد و مشخصاتي داشته باشد که امکان رقابت در فضاي computing موازي را فراهم کند، دشوار است.»

دور بعدي
 

بسيار جالب است که ببينيم استراتژي هاي متفاوت اينتل و Nvidia طي سال 2010 چگونه نقش آفريني خواهد کرد. اما قبل از اين که به پايان بازي برسيم، هر دو طرف حرکت هاي کمي براي بازي دارند.
Nvidia از قبل نشان داده است که CUDA در فضاي سخت افزاري فعلي يک فعاليت جدي است و قرار است Fermi مجموعه جديدي از قابليت هاي برنامه نويسي مبتني بر GPU را به نمايش بگذارد. ضمناً اينتل اميدوار است با ادامه تقويت پردازنده هاي خود، به GPU computing حمله ور شود و به پردازنده ها کمک کند وظائف مربوط به رسانه را که مهم ترين مزيت GPU ها محسوب مي شود اداره کنند. Radoslaw Walczyk مدير PR اينتل مي گويد:« قبلاً اعلام شده بود که Sandy Bridge، ساختار نسل بعدي اينتل که قرار است در سال 2011 به بازار عرضه شود از Vector Extension هاي پيشرفته که به شکلي عمده مي توانند کارآيي مميز شناور را افزايش دهند برخوردار خواهد بود. و ما چيزهاي ديگري هم داريم که هنوز درباره آن ها صحبت نکرده ايم. اما شما مي توانيد مطمئن باشيد که با نسل جديد سخت افزارها، اينتل تکنولوژي هاي جديدي را که کارآيي عمليات مربوط به چند رسانه اي را به طور عمده افزايش مي دهد معرفي خواهد کرد.»
اگرچه در نهايت، هر اتفاقي که در حوزه دسک تاپ رخ دهد بدون هيچ شکي GPU Computing بازي ها را براي هميشه متحول کرده است. آن گونه که Roger Kay نتيجه گيري کرده است: « افراد عادي به اين زودي ها از GPU Computing استفاده نخواهند کرد اما آن ها مي توانند به سرعت از محصولات آن استفاده کنند: افکت هاي انيميشن سه بعدي که توسط استوديوهاي بزرگ فيلم سازي ساخته مي شود، داروهاي کشف شده توسط GPU Computing و از آنجائيکه کمپاني نفت و گاز از آن براي کشف منابع استفاده خواهند کرد، حتي شايد مبلغي که مردم براي انرژي مي پردازند نيز در اين حوزه جاي بگيرد.»

AMD به دنبال تعادل
 

شايد شما فکر کنيد AMD به عنوان تنها کمپاني بزرگ سازنده پردازنده و کارت هاي گرافيکي مجزا( تحت نام ATI) نگاهي معترض به اين موضوع داشته باشد. ما در اين زمينه با Sasa Marinkovic مدير بازاريابي AMD صحبت کرده ايم.
آيا فکر مي کنيد GPU Computing قرار است دنيا را عوض کند؟
GPU Computing يک تغيير الگوي کامل، در روشي که مشکلات دنياي واقعي حل مي شوند به شمار مي رود. ما قبلاً کمپاني هايي مثل ArcSoft, CyberLink و Adobe را ديده ايم که از شتاب دهي GPU استقبال و استفاده کرده اند. براي اين که برنامه نويسان بتوانند به آن جا برسند، بايد يک منحني يادگيري جديد را پشت سر بگذارند اما ما انتظار داريم برنامه هاي کاربردي بيش تري که توسط GPU شتاب يافته اند را در سال 2010 و 2011 ببينيم.
آيا فکر مي کنيد مدل برنامه نويسي CUDA کمپاني Nvidia مي تواند مزيتي براي آن به ارمغان آورد؟
من نمي خواهم در مورد روش سايرين اظهار نظر کنم اما ما سيستم هاي اختصاصي زيادي را در گذشته ديده ايم که شکست خورده اند. استانداردهاي باز OpenCL و DirectCompute واقعاً فقط در چند ماه گذشته در دسترس قرار گرفته اند اما مدت ها است که صنعت کامپيوتر به دليل اين که توسعه دهندگان تمايل دارند بهترين نتيجه را از کوشش هاي مهندسي خود بگيرند آن ها را به کار گرفته است. و ما قصد داريم اين استانداردهاي صنعتي را تشويق کنيم تا بومي را براي فروشندگان فراهم کنيم تا بتوانند بر روي آن نقاشي کنند و محيط هاي cross-platform را فعال کنند.
آيا لغو پروژه Larrabee اينتل، براي AMD يک فرصت محسوب مي شود؟
در حوزه کارت هاي گرافيکي مجزا، ما طي چند سال گذشته با قدم هاي خستگي ناپذيري گام برداشته ايم، کارآيي هر وات و هر دلار را بالا برده ايم و نمي فهمم چگونه قرار بود Larrabee همه اين ها را تغيير دهد. بنابراين ما کماکان فقط بر اجرا و ارائه ويژگي هاي خلاقانه به بازار متمرکز خواهيم ماند.
آيا ظهور و توسعه GPU Computing، به معناي از دست رفتن تدريجي اهميت پردازنده است؟
AMD به يک پلتفرم متوازن اعتقاد دارد. يک GPU با تعداد بسيار زيادي پردازنده ممکن است قدرتمندترين وسيله موجود در بازار کامپيوتر باشد اما CPU با لودهاي موازي، سازگاري بهتري دارد. انباشتن برنامه هاي کاربردي مختلف در مکان هاي مناسب باعث مي شود تا کاربر نهايي از مزاياي کارآيي بهره مند شود و براي PCهاي سيار، اين احتمالاً به معناي عمر بهتر باطري خواهد بود. ما تنها کمپاني توليد کننده همزمان CPU و GPU هستيم و اين قابليت توليد يک پلتفرم متوازن حقيقي، مزيتي است که در برابر رقباي مان داريم.
منبع:بزرگراه رايانه، شماره 128.