پست وبلاگ

کدام کارت گرافیک برای یادگیری عمیق مناسب است؟ (بخش دوم :مقایسه بین CPU و GPU )

کدام کارت گرافیک برای یادگیری عمیق مناسب است؟ (بخش دوم :مقایسه بین CPU و GPU )

بسم الله الرحمن الرحیم

در بخش اول ما به بیان کلی اطلاعات پرداختیم که چه کارتهایی برای فعالیت در حوزه یادگیری عمیق مناسب هستن و توضیحات مختصری هم در این زمینه داده شد تا درک مطلب بهتر صورت بگیره. در این بخش انشاءالله ما با اطلاعات بیشتری روبرو میشیم که کار انتخاب رو برای ما راحت تر میکنه و همینطور اطلاعات عمومی جالبی هم بدست میاریم .

در بخش قبلی ما یک لیست از کارتهای مناسب رو با هم مرور کردیم . در زیر یک مقایسه نسبی بین چند مورد از این کارتها (۱۰۸۰,۱۰۷۰,۹۸۰TI,980,960,Titanx) رو میبینید. مشخصات سیستمی که بنچ مارکها با استفاده از اون گرفته شده رو در زیر ملاحظه میکنید:

بنچمارکهای مختلفی گرفته شده اما چیزی که برای ما اهمیت داره بیشتر از بقیه بنچمارکهای مربوط به اجرای AlexNet با کارتهای مختلف هست تا بما یه ایده قابل لمس از تفاوت بین این کارتها ارائه کنه (البته هنوز نه کاملا!)

چند تست زیر بنچمارکهای کسب شده در اجرای

از لحاظ نسبت وات/کارایی هم رتبه بندی این کارتها بصورت زیر هست :

سری دوم بنچمارک ها با حضور GTX1060! و تستهای مبتنی بر OpenCL

تمامی بنچمارکهای انجام شده دیگه رو میتونید از این لینک  و این لینک مشاهده کنید.

در زیر هم لیستی از جدیدترین کارتهای انویدیا و مقایسه انجام شده بین اونها رو میبینید:

در اینجا هم میتونید بنچ مارکهای دیگه ای که گرفته شده رو ببینید (اختصاصی دیپ لرنینگ و شبکه کانولوشن هست )

بنچمارکهای دیگه ای رو هم میتونید اینجا ببنید که کارتهای GTx1080 با TitanX پاسکال و TitanX مکسول مقایسه کرده و همینطور فریم ورکهای مختلف هم مورد بررسی قرار گرفته اند

خب تا اینجا کاملا مشخصه که نسل جدید کارتهای گرافیکی انویدیا چقدر خوب کار میکنن و کارایی هرکدوم نسبت به بقیه به چه صورت هست. البته تیم دتمرز در وبلاگش توضیحات خیلی خوبی داده و در یکی از بخشها هم اینطور گفته :

تیم دتمرس یکی از اولین کسایی هست که توضیحات خیلی خوبی در رابطه با خرید کارت گرافیک در وبلاگش ارائه کرد. که میتونید از این لینک  و این لینک برای دیدنش استفاده کنید.

خب چندتا مبحث هست که باید در موردش توضیح داده بشه .
یکی میزان تفاوت بین CPU و GPU هست که باید یکسری بنچ مارک قرار داده بشه .
یک مورد دیگه تفاوت بین استفاده از cuda و cudnn هست و همینطور تفاوت بین ورژن های مختلف Cudnn
مورد دیگه هم بنچ مارک بین کارتهای مختلف هست و داستان FP16

قبلا در مورد این صحبت شده بود که CPU گزینه مناسبی برای پردازش های سنگین یادگیری عمیق نیست . بنچ مارکهای زیر بخوبی این تفاوت رو نشون میدن :

دقت کنید بنچ مارکها مربوط به سالهای مختلف هستن. مثلا اولین تصویر مربوط به سال ۲۰۱۲ هست و الان سرعتها چندین برابر بیشتر از قبل شده (لینک به صفحات اصلی در انتها هست تا بیشتر مطالعه کنید)
بطور خاص به تفاوت روزهای صرف شده برای اموزش در حالت بدون cudnn و با اون دقت کنید و بعد با پردازش سمت cpu قیاش کنید:

43 روز در مقابل یک هفته و بعد 3 روز با استفاده از cudnn!

نکته بعدی بحث cudnn هست. قبلا توضیح دادیم که cudnn یک کتابخونه سطح بالا برای کار با شبکه های عصبی مصنوعی عمیق هست که بعنوان یک شتاب دهنده ازش استفاده میشه . مخفف CUDA® Deep Neural Network library (cuDNN)  هست. نکته ای که باید بهش توجه کنید اینه که نه تنها افزایش کارایی بسیار زیادی صرفا با استفاده از اون بدست میاد بلکه با استفاده از ورژن جدیدتر کارایی چند برابر نسبت به ورژن قبل بهبود پیدا میکنه.

بهبود نسبت به cudnnv1:

افزایش کارایی با بروزاوری cudnn طی ۲۰۱۲ تا ۲۰۱۵ :

در حال حاضر هم بعنوان مثال cudnnv5.1  به مقدار ۲٫۷ برابر سریعتر از ورژن ۴ هست و cudnn6 هم در کارتهای جدید (سری پاسکال) ۲ برابر سریعتر از سری ۵٫۱ هستند.

تست های انجام شده مدت زمان صرف شده به همراه افزایش سرعت بدست اومده در انجام عملیات forward pass و بعد بک پراپگیشن رو نشون میده :

نکات مهم برای خرید (توضیحات بعدا):

مادربرد اگر دارید تهیه میکنید سعی کنید هزینه بیشتر کنید و یه مادربرد خوب بگیرید.

خرید یک پاور قدرتمند رو فراموش نکنید. موقع خرید حتما سعی کنید یک پاور ۶۰۰ وات به بالا بگیرید

سیستم کولینگ مناسب تهیه بشه خوبه

هارد SSD باشه خوبه اما ضروری نیست . خصوصا اگه گلوگاه کارت گرافیک و قدرت پردازشی شما باشه نه سرعت IO شما.

لینکهای مفید دیگه میشه به موارد زیر اشاره کرد :

http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/

https://developer.nvidia.com/cudnn

https://blogs.nvidia.com/blog/2015/03/17/digits-devbox/

Turn Your Deep Learning Model into a Serverless Microservice

http://adarshpatil.in/timewarp/projects/caffe-optimization-for-multicore-cpu.html

GPUs Power Over 90% of ImageNet Deep-Learning Visual Recognition Challenge Entries

cuDNN v2: Higher Performance for Deep Learning on GPUs

https://www.bdti.com/InsideDSP/2015/07/23/NVIDIA

https://github.com/tobigithub/tensorflow-deep-learning/wiki/tf-benchmarks

CPU, GPU Put to Deep Learning Framework Test

Inference: The Next Step in GPU-Accelerated Deep Learning

http://www.hpc.co.jp/benchmark20160610.html

https://blogs.nvidia.com/blog/2016/01/12/accelerating-ai-artificial-intelligence-gpus/

http://wccftech.com/nvidia-new-titan-x-pascal-performance/

GTX 980Ti, 1060, 1070 or 1080 for deep learning? from nvidia

 

بخش اول : کدام کارت گرافیک برای یادگیری عمیق مناسب است؟ (بخش اول)

 

نکته :
این مطلب قرار بود سال قبل منتشر بشه اما بلعت مشغله خیلی زیاد تو draft مونده بود. من هنوز فرصت نکردم در مورد fp16 ها توضیحات مورد نیاز رو بدم همینطور یکسری اطلاعات دیگه مربوط به کارتها که موقع انتخاب و خرید بشه انتخاب بهتری داشت . انشاءالله سرم خلوت تر شد سعی میکنم تو بخش سوم به این مباحث بپردازم .
اگه این بخش هم زیاد خوب نشده به بزرگواری خودتون ببخشید اگه همینقدر رو هم منتشر نمیکردم شاید میرفت برای چند ماه دیگه!

سید حسین حسن پور
فروردین ۹۶

 

سید حسین حسن پور متی کلایی

درباره ی سید حسین حسن پور متی کلایی

موسس و مدیر سایت. اطلاعات در مورد فعالیت های کاری و تحصیلی : linkedIn . برای ارتباط از بخش تماس با ما یا در باره من استفاده کنید.

مقالات مرتبط

3 دیدگاه در “کدام کارت گرافیک برای یادگیری عمیق مناسب است؟ (بخش دوم :مقایسه بین CPU و GPU )

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *