راهنمای گام به گام نصب درایور و CUDA Toolkit و cuDNN در لینوکس (اوبونتو ۱۶٫۰۴)
بسم الله الرحمن الرحیم
در این آموزش قصد داریم ببینیم چطور میتونیم کودا تولکیت ,درایور و cuDNN رو در لینوکس (اوبونتو ۱۶٫۰۴ ) نصب کنیم.
در اولین گام نیاز به نصب درایور دارید. بهترین گزینه برای نصب درایور شما استفاده از بخش Additional driversهست که میتونید با تایپ بخشی از نام اون در dash به اون دسترسی داشته باشید.
قبل از هرچیزی اطمینان حاصل کنید از تنظیمات بایوس مادربرد ویژگی SecureBootرو غیرفعال کرده باشید. اگر اینکار رو نکرده باشید در حین انجام فرایند نصب درایور از طریق additional drivers صفحاتی بشما نمایش داده میشه و پسوردی از شما دریافت میشه که برای غیرفعال کردن این ویژگی هست. (یک پسورد وارد میکنید و در زمان بوت دوباره همون پسورد رو وارد میکنید تا اینطور مشخص بشه غیرفعال سازی Securebootتوسط یک برنامه مخرب صورت نگرفته) . دقت کنید که احتمال زیادی هست که این کار securebootرو غیرفعال نکنه. همونطوری که برای من نکرد. جای نگرانی نیست. صرفا بعد از نصب درایور ریبوت کنید وارد تنظیمات بایوس بشید و Securebootرو غیرفعال کنید. بعد از اون باید بتونید براحتی وارد سیستم عاملتون بشید.
شیوه دیگه نصب درایور در لینوکس با استفاد از پکیج cuda toolkit هست. ما به دو صورت میتونیم پکیج CUDA toolkit رو دریافت و نصبش کنیم . یکی از طریق runfileو دیگری از طریق deb file. شما باید سعی کنید همیشه تا جایی که براتون امکان داره از runfile استفاده کنید. چون عموما این فایلها بروز هستن و مهمتر از اون اینکه در فرایند نصب بصورت تعاملی کار میکنند و شما میتونید بخشهای مختلف رو نصب کنید یا نکنید. اما مشکلی در مورد پکیج .deb هست اینه که این پکیج تقریبا اکثر اوقات بشدت outdated و قدیمی هست (بخاطر مثلا استیبل بودن!) و یک نکته بد دیگه ای هم که داره اینه که شما هیچ کنترلی روی فرایند نصب ندارید. در پکیج های deb تمامی dependencyها بصورت خودکار نصب میشن. این ویژگی خوبیه. اما زمانی که دیپندنسی ها قدیمی باشن و یا شما نتونید کنترلی رو فرایند نصب داشته باشید بطور ویژه در حالت مورد نظر ما مشکل ایجاد میکنه. برای همین اگر شما قبلا درایوری رو نصب کرده باشید و الان صرفا قصد داشته باشید CUDA toolkitرو نصب بکنید با مشکل مواجه میشید . به همین دلیل همیشه سعی کنید از طریق اجرای run file کودا تولکیت رو نصب کنید.
نکته سومی که باید بهش اشاره کنم اینه که اگر به هر دلیلی بدنبال نصب درایور از طریق پکیج CUDA Toolkit (ورژن runfile) اون هستید دقت کنید که قبلش باید یکسری گام رو بردارید و شخصا ندونستن این مساله درسرهای زیادی برای من بوجود آورد و زمان زیادی از من بابت رفع اشکال گرفت. در زیر من تمامی این موارد رو سعی میکنم قید کنم تا انشاءالله با پیروری از اونها مشکلی در این زمینه نداشته باشید.
شیوه نصب کودا تولکیت توسط runfile (بخش درایور هم پوشش داده میشه اینجا ):
دقت کنید لطفا ابتدا از اول تا انتها این آموزش رو مطالعه کنید یکبار. من دستورات گام بگام رو انتهای آموزش بصورت خلاصه و کوتاه آوردم که در ۹۹ درصد اوقات همون ها رو وارد کنید بدون مشکلی انشاءالله درایور و یا کودا تولکیت و cudnn رو میتونید نصب کنید. ولی ضروریه قبل از اجرای دستورات بدونید چه اتفاقی داره می افته و یا چه گزینه های دیگه ای دارید. من در انتهای آموزش یکسری از خطاهایی که خودم باهاش مواجه شدم رو هم لیست کردم پس خوب مطالعه کنید و بعد برای نصب اقدام کنید.
نکته اول : برای نصب درایور معمولا راحت ترین کار نصب اون از طریق Additional drivers هست . دکمه windows روی کیبرد رو بزنید (ارم ویندوز) یا روی Dash کلیک کنید (همون آیکون سفید رنگ در گوشه سمت چپ ) در بخش سرچ تایپ کنید Additional drivers ) و اونجا مشخص هست که چکار کنید کافیه درایور انویدیا رو انتخاب کنید و بعد apply بزنید. اگر secureboot شما فعال باشه یک پسورد میخواد برای غیرفعال کردنش. بدید و درایور رو نصب کنید. اگر موقع بوت به مشکل خوردید و در صفحه لاگین گیر کردید (با زدن username, passowrd هی به صفحه لاگین بر میگردید! این به این معناست که Secureboot غیرفعال نشده . سیستم رو ری استارت کنید به تنظیمات بایوس مادربرد برید و Securebootرو غیرفعال کنید. بعد باید براحتی بتونید لاگین کنید. اگر Securebootغیرفعال بود ولی باز در صفحه لاگین به همین شکل گیر کردید یعنی درایور شما با کرنل فعلی همخوانی نداره (یا حداقل یک چیزی کمه ) معمولا این با نصب درایور از این طریق اتفاق نمی افته و بیشتر از طریق نصب دستی از طرق دیگه رخ میده که البته برای حل اون هم در ادامه توضیحات کافی داده شده. بعد از اینکه درایور نصب شد دیگه نصب کودا تولکیت و سمپل هاش و cudnn نکته خاصی نداره و یک فرایند سر راست هست. (البته پیش نیازها باید نصب بشه که در ادامه اومده) .
اگر دلتون بخواد از درایور بروز استفاده کنید میتونید از درایوری که همراه کودا تولکیت هست استفاده کنید. همینطور میتونید از سایت انویدیا اخرین درایور رو دانلود و نصب کنید که اطلاعات مورد نیاز باز در ادامه هست.
تا جای ممکن سعی کنید درایور رو از طریق پکیج های deb نصب نکنید چون مشکلات مختلفی در ادامه میتونن براتون بوجود بیارن و ممکنه بعدا خیلی اذیت بشید.
در توضیحات زیر شیوه نصب کودا تولکیت cudnn و درایور همراه کودا تولکیت اورده شده . چون قصد من پوشش نصب کودا تولکیت با درایور و بدون اون بود توضیحات مربوط به درایور (غیرفعال سازی درایور فعلی و… ) هم اورده شده. پیشنهاد میکنم همه مطالب رو از ابتدا تا انتها مطالعه کنید. بعد خیلی راحت مواردی که مربوط به نصب درایور هست رو در نظر نگیرید و یکسره برید سراغ نصب کودا تولکیت . عزیزانی هم که میخوان بنا به هر دلیلی درایور رو از این طریق نصب کنن دقت کنن یکسری اطلاعات کلی هست مثلا برای بخش نصب (بعد از مقدمه) میبینید یکسری اطلاعات کلی داده شده و من دقیق نشدم . اما از اون طرف وقتی به بخش غیرفعال کردن nouveau (درایور نصب شده پیشفرض اوبونتو برای کارتهای انویدیا) میرسیم من قدم به قدم توضیح دادم چه کاری باید صورت بگیره . هر دوی این بخشها رو بخونید و با دستورات و خروجی ها آشنا بشید بعد از اینکه توضیحات رو مطالعه کردید و متوجه شدید هر دستور برای چه کاری هست در اخر من بصورت خلاصه و گام بگام شیوه غیرفعال سازی درایور پیشفرض و بعد نصب درایور جدید (چه درایور همراه کودا تولکیت چه درایور دانلود شده از سایت انویدیا (فرقی نمیکنه) رو توضیح دادم .
۱٫کارهای پیش از اقدام به نصب :
قبل از اینکه نسبت به نصب CUDA toolkit و Driver از طریق ان اقدام کنید نیازمند بررسی موارد زیر هستید :
-
- بررسی کنید که سیستم شما دارای GPU با توانایی پشتیبانی از CUDA باشد
-
- بررسی کنید که سیستم شما در حال اجرای یک نسخه پشتیبانی شده از لینوکس باشد
-
- بررسی کنید که gcc در سیستم شما نصب شده باشد
- بررسی کنید که سیستم شما حاوی سرآیندها و بسته های توسعه(development packages) کرنل صحیح باشد.
روشهای نصب متضاد را مدیریت کنید.
نکته :دقت کنید شما میتوانید بررسی پیش نیازها در زمان نصب را از طریق اجرای نصب کننده با فلگ override غیرفعال کنید. بیاد داشته باشید که پیش نیازها همچنان برای استفاده از تولکیت CUDA مورد نیازاند
۱٫۱ بررسی کنید که سیستم شما دارای یک GPU با توانایی پشتیبانی از CUDA باشد :
به منظور بررسی و تایید اینکه GPU شما قادر به پشتیبانی از CUDA است میتوانید وارد بخش system properties توزیع خود شده و یا از طریق دستور زیر به این مهم پی ببرید :
1 2 3 |
lspci | grep -i nvidia |
اگر هیچ تنظیماتی در این رابطه مشاهده نکردید نسبت به بروزرسانی PCI hardware database که لینوکس آنرا مدیریت میکنید از طریق وارد کردن دستور update-pciids (که بطور معمول در /sbin یافت میشود) در خط فرمان اقدام کنید و سپس دوباره دستور lspci را بصورت قبل اجرا نمایید.
علاوه بر روش فوق همچنین اگر کارت گرافیک شما NVIDIA باشد میتوانید با بررسی لیست : http://developer.nvidia.com/cuda-gpus مشاهده نمایید آیا کارت شما از قابلیت CUDA پشتیبانی میکند یا خیر.
همچنین نکات زمان انتشار (Release notes) هر CUDA Toolkitشامل لیستی از محصولات پشتیبانی شده میباشد.
۱٫۲ بررسی کنید که سیستم شما از نسخه پشتیبانی شده لینوکس استفاده میکند
ابزارهای توسعه CUDA تنها بر روی بعضی از توزیع های لینوکس پشتیبانی میشوند. این توزیع ها در نکات زمان انتشار CUDA Toolkitموجود هستند.
به منظور اطمینان از اینکه شما در حال اجرای کدام توزیع و شماره انتشاری هستید دستور زیر را در خط فرمان وارد کنید :
1 2 3 |
uname -m && cat /etc/*release |
شما باید خروجی همانند آنچه در زیر آمده است را مشاهده کنید که بر حسب نوع سیستم عامل شما بخشهایی ممکن است متفاوت باشند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
hossein@hossein:~$ uname -m && cat /etc/*release x86_64 DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS" NAME="Ubuntu" VERSION="16.04.4 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.4 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial |
خط x86_64 نشانگر آن است که شما در حال اجرای یک سیستم عامل ۶۴ بیتی هستید. مابقی اطلاعاتی در رابطه با توزیع شما اراپه میکنند.
۱٫۳ بررسی نمایید که Gcc در سیستم شما نصب شده باشد
وجود کامپایلر gcc برای توسعه با استفاده از تولکیت CUDA ضررورییست. این کامپایلر برای اجرای برنامه های مبتنی بر CUDA مورد نیاز نیست. این کامپایلر معمولا بعنوان بخشی از فرایند نصب لینوکسُ نصب شده و در اکثر حالات نسخه Gccنصب شده(بصورت پیش فرض) در یک نسخه پشتیبانی شده از لینوکس بدرستی کار خواهد کرد.( در اکثر اوقات CUDA toolkit با Gcc که بصورت دیفالت در یک توزیع لینوکس که CUDA toolkitاز ان پشتیبانی میکند بدرستی کار خواهد کرد)
به منور بررسی و تایید نسخه نصب شده Gcc بر روی سیستم خود دستور زیر را در خط فرمان وارد کنید :
1 2 3 |
gcc --version |
اگر پیام خطایی بشما نمایش داده شدُ این بدین معناست که شما نیازمند نصب ابزارهای توسعه از طریق توزیع لینوکس خود و یا ابتیاع نسخه ای از Gccو toolchain همراه آن از وب هستید.
۱٫۴ بررسی کنید که سیستم شما حاوی سرآیند ها و بسته های توسعه کرنل صحیح باشد .
درایور CUDA نیازمند آن است که سرآیندها و بسته های توسعه برای نسخه کرنل جاری ُدر زمان نصب درایور همچنین بازسازی (rebuild) درایور نصب و حاضر باشند. بعنوان مثال اگر سیستم شما در حال اجرای کرنل نسخه 301 - 4.17.3 باشد. سرایند های کرنل و پکیج های توسعه نسخه 301 - 4.17.3 نیز بایستی نصب شده و حاضر باشند.
هرچند نصب از طریق runfile هیچ اعتبار سنجی پکیجی (مرتط به وجود یا عدم وجود یک پکیج) را انجام نمیدهدُ .نصب های مبتنی بر Debو RPM درایور تلاش خواهند کرد تا سرایند کرنل و پکیج های توسعه را در صورتی که هیچ نسخه ای از این پکیج ها در حال حاضر نصب نباشد نصب کنند. نکته حایز اهمیت اما اینجاست چرا که آنها اخرین نسخه این پکیج ها را نصب خواهند کرد که ممکن است با نسخه کرنلی که سیستم شما در حال استفاده از آن است همخوانی نداشته باشد. بنابر این بهترین کار آن است که بصورت دستی از نصب و حاضر بودن نسخه صحیح سرایند های کرنل و بسته های توسعه (پکیج های توسعه) مرتبط اطمینان حاصل کنید قبل از انکه نسبت به نصب درایور های کودا اقدام کنید. همچنین هر زمانی که تغییری در نسخه کرنل خود میدهید بایستی این مهم را انجام دهید.
نسخه جاری کرنل که سیستم شما از آن استفاده میکند را میتوان از طریق اجرای دستور زیر بدست آورد :
1 2 3 |
uname -r |
این نسخه سرایند های کرنل و بسته های توسعه است که بایستی قبل از نصب درایورهای CUDA نصب گردند. این دستور چند مرتبه در ادامه جهت مشخص کردن نسخه پکیج های مورد نظر برای نصب ُمورد استفاده قرار خواهد گرفت. دقت کنید که آنچه در ادامه می آید سناریوهای متداولی برای استفاده از کرنل هستند. حالات پیشرفته بیشتر همانند نسخه های جانبی کرنلهای سفارشی شده بایستی اطمینان حاصل نمایند که سرایند های کرنل و منابع(سورس ها) با کرنل ساخته شده که از آن استفاده میکنند همخوانی داشته باشد.
توجه : اگر شما بروزرسانی سیستم داشته باشید ُ این مساله باعث ایجاد تغییرات در نسخه کرنل مورد استفاده در لینوکس شما میشود. اطمینان حاصل کنید که دستورات زیر را دوباره اجرا کنید تا مطمپن شوید که نسخه صحیح سرایندهای کرنل و بسته ها یتوسعه را نصب کرده باشید.در غیر اینصورت نصب درایور CUDA با شکست مواجه خواهد شد و با کرنل جدید کار نخواهد کرد.
Ubuntu
سرایندهای کرنل و بسته های توسعه برای کرنل در حال اجرای فعلی را میتواند از طریق دستور زیر نصب نمود :
1 2 3 |
sudo apt-get install linux-headers-$(uname -r) |
1 2 3 4 |
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev |
نصب از طریق Runfile :
این بخش به شرح چگونگی نصب و پیکربندی CUDA در زمان استفاده از نصاب (standalone installer)میپردازد. نصاب فایلی با پسوند “.run” است که تماما خودوابسته است به این معنا که شامل تمامی پیش نیازهای مورد نیاز میباشد و هیچ وابستگی خارجی ندارد.
مقدمه
نصاب مبتنی برrunfile, درایور NVIDIA, کودا تولکیت و نمونه مثال های کودا را از طریق یک رابط متنی تعاملی نصب میکند. در ادامه توضیحات
نصب
کارهای پیش از نصب را بصورت زیر انجام دهید :
درایورهای Nouveau را غیرفعال کنید
وارد حالت متنی شوید (runlevel 3)
میتوانید این کار را با اضافه کردن عدد ۳ به انتهای پارامترهای بوت کرنل یک سیستم انجام دهید یا از طریق Ctrl+Alt+F1 الی F6 وارد یک محیط متنی شوید.
از آنجایی که درایورهای NVIDIA هنوز نصب نشده اند ترمینالهای متنی ممکن است متنون را بخوبی نمایش ندهند. شما میتوانید با اضافه کردن “nomodeset” به پارامترهای بوت کرنل سیستم بصورت موقت این مشکل را برطرف کنید.
برای کسب اطلاعات در مورد چگونگی اعمال تغییرات در پارامترهای بوت به مستندات بوت لودر سیستم خود مراجعه کنید ( در ادامه من روش ساده تر دیگه ای رو هم عنوان میکنم. فعلا فقط مطالعه کنید!)
یک ریبوت برای آنکه درایورهای Nouveau کاملا خارج شده و همینطور مانع بارگذاری رابط گرافیکی شود مورد نیاز است. درایور کودا نمیتواند در حالی که درایورهای Nouveau فعال هستند و یا رابط گرافیکی کاربر هنوز فعال است نصب شود.
بررسی و اطمینان حاصل کنید که درایورهای Nouveau لود نشده باشند. اگر درایور های Nouveau هنوز فعال و حاضر باشند با مراجعه به مستندات توزیع لینوکس خود ببینید چگونه میتوانید آنرا غیرفعال نمایید.(توضیحات در ادامه آمده است )
قبل از اینکه نصاب را اجرا کنید ابتدا دستور زیر را اجرا کنید. دستور زیر بجای <version> نسخه فایل خود را وارد کنید.(بعنوان مثال نام فایل دانلودی ما cuda_9.1.85_387.26_linux.run است.)
1 2 3 |
chmod +x cuda_<version>_linux.run |
یا با استفاده از GUI بر روی فایل راست کلیک نموده properties را انتخاب کرده و سپس از تب permission بر روی گزینه Allow executing file as program کلیک نمایید.
نصاب را اجرا کرده و از دستورات نمایش داده شده بر روی صفحه پیروی کنید :
1 2 3 |
sudo sh cuda_<version>_linux.run |
نصاب پیام هایی برای موارد زیر نمایش خواهد داد:
-
- پذیرش موافقتنامه
-
- نصب درایور کودا
-
- نصب تولکیت کودا ,مکان آن و لینک سمبولیک /usr/local/cuda
- نصب مثالهای کودا و مکان آن
مکان های نصب پیشفرض برای تولکیت و مثالها بصورت زیر هستند:
Component | Default Installation Directory |
---|---|
CUDA Toolkit | /usr/local/cuda-9.1 |
CUDA Samples | $(HOME)/NVIDIA_CUDA-9.1_Samples |
لینک سمبولیک usr/local/cuda/ به مکانی که کودا تولکیت در آن نصب شده است اشاره میکند. عموما این لینک به پروژه و برنامه های نصب شده اجازه میدهد تا از آخرین نسخه تولکیت کودا بدون نیاز به بروز رسانی در فایل پیکربندی خود استفاده کنند.
این نصاب باید توسط مجوزهای کافی (sufficient privileges) اجرا شده تا بتواند بعضی از عملیات ها را انجام دهد. زمانی که مجوز های فعلی برای اجرای کاری ناکافی باشند, اینستالر از کاربر درخواست رمزعبور جهت تلاش برای بدست آوردن مجوز روت راخواهد کرد.عملیات هایی که باعث میشوند نصاب برای نصب نیازمند به دسترسی روت باشد از قرار زیر اند :
-
- نصب درایور CUDA
-
- نصب تولکیت کودا در مسیری که کاربر حق نوشتن (رایت پرمیشن ) ندارد.
-
- نصب نمونه مثال های CUDA در مسیری که کاربر حق نوشتن ندارد.
- ایجاد لینک سمبولیک /usr/local/cuda
اجرای نصاب با استفاده از sudo همانطور که در بالا نشان داده شده است, باعث کسب حق دسترسی موردنیاز برای نصب در دایرکتوری هایی که نیازمند دسترسی روت هستند میشود. دایرکتوری ها و فایلهای ایجاد شده درحین اجرای نصاب با sudo دارای عضویت روت خواهند شد.
اگر صورت نصب درایور , نصاب همچنین خواهد پرسید آیا کتابخانه های OpenGL نصب گردند یا خیر. اگر GPU مورد استفاده برای صفحه نمایش از نوع NVIDIAنباشد کتابخانه های openGL انویدیا نبایستی نصب شوند. در غیراینصورت کتابخانه های OpenGL مورد استفاده توسط درایور کارت غیر NVIDIA حذف شده و GPU بدرستی کار نخواهد کرد. اگر در حال انجام نصب ساکت (silent installation) هستید گزینه no-opengl-libs-- میبایست جهت جلوگیری از نصب شدن کتابخانه های openglمورد استفاده قرار گیرد. برای مشاهده جزییات بیشتر به بخش گزینه های پیشرفته نگاه کنید.
اگر GPUاستفاده شده برای صفحه نمایش یک GPU انویدیا باشد فایل تنظیمات x server یعنی etc/X11/xorg.conf/ , ممکن است نیاز به تغییرات داشته باشد. در بعضی از حالت , nvidia-xconfig را میتوان جهت تولید خودکار یک فایل xorg.conf که در سیستم کار کند مورد استفاده قرار داد. برای سیستم های غیر استاندارد همانند آن مواردی که بیش از یک GPU دارند پیشنهاد میشود که بطور دستی نسبت به ویرایش فایل xorg.conf اقدام کنند. لطفا برای اطلاعات بیشتر در این زمینه به مستندات xorg.confمراجعه کنید.
توجه :نصب Mesa ممکن است باعث حذف usr/lib/libGL.so/ که قبلا با نصب درایور NVIDIA نصب شده شود. بنابر این نصب دوباره درایور انویدیا ممکن است بعد از نصب این کتابخانه ها مورد نیاز باشد .
بعد از نصب درایور با دستور sudo service lightdm start سرویس display manager lightdmرا دوباره فعال نمایید.
سیستم را reboot کرده تا رابط گرافیکی لود شود.
اطمینان حاصل کنید که device node ها بدرستی ایجاده شده باشند.
نسبت به انجام عملیات های بعد از نصب اقدام کنید.
غیرفعال سازی Nouveau
برای نصب درایور صفحه نمایش (Display Driver) درایورهای Nouveau باید ابتدا غیرفعال شوند. هر توزیع لینوکس روش متفاوتی برای غیرفعال سازی این مساله دارد.
درصورتی که درایورهای Nouveau بارگذاری شده و فعال باشند دستورات زیر اطلاعاتی را بشما نمایش خواهند داد :
1 2 3 |
lsmod | grep nouveau |
1 2 3 4 5 6 7 8 9 10 11 |
hossein@hossein:~$ lsmod | grep nouveau nouveau 1650688 4 mxm_wmi 16384 1 nouveau i2c_algo_bit 16384 1 nouveau ttm 94208 1 nouveau drm_kms_helper 167936 1 nouveau drm 360448 7 nouveau,ttm,drm_kms_helper wmi 24576 4 asus_wmi,wmi_bmof,mxm_wmi,nouveau video 40960 2 asus_wmi,nouveau |
اگر این درایور بارگذاری نشده باشد هیچ چیزی در صفحه مشاهده نخواهید کرد.
Ubuntu
با فشردن کلید های Ctrl + Alt + F2 وارد حالت متنی شوید. سپس با دستور sudo service lightdm stop سرویس مرتبط با display manager lightdm را غیرفعال کنید.
اکنون باید درایور nouveau را غیرفعال کنیم . اگر از دستور sudo rmmod nouveauدرایور nouveau را غیرفعال و unload میکنیم. اگر خطایی دریافت کردید نیاز به نگرانی نیست چرا که در گام بعدی این درایور را غیرفعال میکنیم(در اصل مانع بارگزاری اون در زمان بوت میشویم).
یک فایل در مسیر etc/modprobe.d/blacklist-nouveau.conf/ با محتویات زیر ایجاد کنید (دقت کنید نام انتخابی است. هر فایلی در اون بخش قرار بگیره موقع بوت لود میشه و چون ما نمیخوایم درایور nouveau بعد از ریبوت دوباره لود بشه در زمان بوت اون رو بلک لیست میکنیم. دقت کنید هر زمانی بعدا اگر نیاز شد دوباره این درایور nouveau رو لود کنید قبلش باید این فایلی که ساختیم رو پاک کنید.بعد سیستم رو ریبوت کنید) :
1 2 3 4 |
blacklist nouveau options nouveau modeset=0 |
initramfs کرنل را دوباره تولید کنید:
1 2 3 |
sudo update-initramfs -u |
بعد از لود دوباره سیستم عامل و ورود به محیط متنی (Ctrl +Alt+F1 الی F6 ) دستور
lsmod | grep nouveau را اجرا کنید تا اطمینان حاصل کنید دایور nouveau بارگزاری نشده باشد (چیزی در خروجی نبایدببینید).
حال قبل از نصب درایور باید display managerرا غیرفعال و بعد اقدام به نصب درایور کنید.
نکته مهم :بعد از نصب درایور با دستور sudo service lightdm start سرویس display manager lightdmرا دوباره فعال نمایید.
بررسی و تایید Device Node:
بررسی کنید که device files در مسیر *dev/nvidia/ وجود داشته باشند و دارای file permission صحیح (۰۶۶۶) باشند. این فایلها توسط درایور کودا برای ارتباط با بخش kernel-mode درایور انویدیا مورد استفاده قرار میگیرند. برنامه هایی که از درایور انویدیا استفاده میکنند همانند برنامه مبتنی بر کودا و یا x server (اگر چیزی وجود داشته باشد) در حالت عادی اگر این فایلها وجود نداشته باشند بصورت خودکار این فایلها را با استفاده از برنامه setuidnvidia-modprobe که در درایور انویدیا موجود است ایجاد خواهند کرد. اما بعضی از سیستم ها به فایلهای اجرایی setuid اجازه اجرا نمیدهند بنابر این اگر این فایلها وجود نداشتند شما باید خود بصورت دستی با استفاده از یک اسکریپت startup همانند آنچه در ادامه می آید نسبت به ساخت آنها اقدام کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/bin/bash /sbin/modprobe nvidia if [ "$?" -eq 0 ]; then # Count the number of NVIDIA controllers found. NVDEVS=`lspci | grep -i NVIDIA` N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l` NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l` N=`expr $N3D + $NVGA - 1` for i in `seq 0 $N`; do mknod -m 666 /dev/nvidia$i c 195 $i done mknod -m 666 /dev/nvidiactl c 195 255 else exit 1 fi /sbin/modprobe nvidia-uvm if [ "$?" -eq 0 ]; then # Find out the major device number used by the nvidia-uvm driver D=`grep nvidia-uvm /proc/devices | awk '{print $1}'` mknod -m 666 /dev/nvidia-uvm c $D 0 else exit 1 fi |
گزینه های پیشرفته
عملیات | گزینه استفاده شده | توضیحات |
---|---|---|
نصب بی صدا | –silent | برای هر نصب بی صدایی لازم است. یک فرایند نصب بدون هیچ ورودی از کاربر و با خروجی خط فرمان حداقلی مبتنی بر گزینه هایی که در ادامه ارایه شده است را انجام میدهد. نصبهای بی صدا برای اسکریپت نویسی نصب کودا مفید هستند. استفاده از این گزینه به معنای قبول قراردادنامه است. فلگ های زیرین برای سفارشی سازی عملیات های صورت گرفته در حین نصب مورد استفاده قرار میگیرند. اگر با دسترسی غیر روت رد حال اجرا است حداقل یکی از سویچ های –driver, –uninstall, –toolkit, و –samples باید ارسال شوند |
–driver | درایور را نصب میکند. | |
–toolkit | تولکیت را نصب میکند. | |
–toolkitpath=<path> | تولکیت را در دایرکتوری <path> نصب میکند. اگر مشخص نشود, مسیر پیشفرض /usr/local/cuda-9.1 استفاده میشود. | |
–samples | مثالهای کودا را نصب میکند. | |
–samplespath=<path> | نمونه مثالهای کودا را در دایرکتوری <path> نصب میکند. اگر مشخص نشود مسیر پیشفرض $(HOME)/NVIDIA_CUDA-9.1_Samples استفاده میشود. | |
–uninstall (DEPRECATED) | درایور را حذف میکند. | |
استخراج | –extract=<path> |
فایلهای نصب مرتبط با درایور, تولکیت و نمونه مثالها را بصورت جداگانه در مسیر <path> استخراج میکند. این امر بطور ویژه زمانی مفید است که فرد بخواهد درایور را از طریق یک یا چند گزینه خط فرمان که توسط نصاب درایور ارایه شده ولی در این نصاب گنجانده نشده است, نصب کند. |
–override | بررسی های مرتبط با کامپایلر, کتابخانه های ثالث و شناسایی تولکیت که ممکن است مانع نصب کودا تولکیت و نمونه مثالهای کودا شوندندید گرفته میشود . | |
عدم نصب کتابخانه های OpenGL | –no-opengl-libs |
از نصب کتابخانه های NVIDIA GL توسط درایور خود داری میکند. این موضوع برای سیستم هایی که در آنها صفحه نمایش توسط یک GPU غیر انویدیا مدیریت میشود مفید است. در چنین سیستم هایی کتابخانه های GL انویدیا ممکن است مانع بارگذاری صحیح X شوند. |
عدم نصب صفحات راهنما (man) | –no-man-page | صفحات راهنما(man page) را در مسیر /usr/share/man نصب نکن. |
Overriding Kernel Source | –kernel-source-path=<path> |
به نصاب درایور اعلام میکند تا در زمان ساخت ماجول کرنل انویدیا از مسیر<path> بعنوان دایرکتوری سورس کرنل استفاده کنید این مساله برای سیست هایی ک سورس کرنل در مکان غیر استانداردی نصب شده است مورد نیاز است. |
اجرای nvidia-xconfig | –run-nvidia-xconfig | به درایور اعلام میکند تا nvidia-xconfig را جهت بروزرسانی تنظیمات X اجرا کند تا درایور NVIDIA X مورد استفاده قرار گیرد. فایل تنظظیمات X قبلی بک آپ گرفته میشود. |
عدم نصب ماجول کرنل nvidia-drm | –no-drm | ماجول کرنلnvidia-drm را نصب نکن.این گزینه تنها بایستی برای دور زدن مشکل ساخت ویا نصب ماجول کرنلnvidia-drm بر روی سیستم هایی که نیازی به این ویژگی ها ندارن استفاده شود. |
انتخاب دایرکتوری موقت سفارشی | –tmpdir=<path> | هر عملیات موقتی را در داخل<path> بجای/tmp انجام میدهد. در مواردی که نمیتوان از تمپ استفاده کرد (مثل زمانی که وجود نداشته یا پر بوده و یا با noexec مونت شده باشد و…) مفید واقع میشود. |
نمایش خروجی طولانی | –verbose | تمامی اطلاعات را علاوه بر فایل لاگ بر روی صفحه(stdout) نیز نمایش میدهد . |
نمایش گزینه های نصاب | –help | لیستی از گزینه های خط فرمان را نمایش میدهد . |
حذف :
برای حذف تولکیت کودا اسکریپت حذف فراهم شده در پوشه bin تولکیت را اجرا کنید. بطور پیشفرض این اسکریپت در مسیر /usr/local/cuda-9.1/bin قرار دارد (دقت کنید چون در زمان نوشتن این آموزش کودا ۹.۱ اخرین ورژن کوداس ما از این اسم استفاده کردیم اون نام رو با ورژن کودای خودتون جایگزین کنید (هرچند بخاطر باگ و توضیحاتی که در ادامه دادم پیشنهاد نمیکنم این ورژن رو نصب کنید و بجاش از ورژن ۹ یا ورژن جدیدتر هر زمان اومد استفاده کنید.) :
1 2 3 |
sudo /usr/local/cuda-9.1/bin/uninstall_cuda_9.1.pl |
برای حذف درایور انویدیا nvidia-uninstall را اجرا کنید :
1 2 3 |
sudo /usr/bin/nvidia-uninstall |
برای فعال سازی درایورهای Nouveau فایل blacklist ایجاد شده در بخش “غیرفعال سازی Nouveau” را حذف کرده و initramfs/initrd کرنل را دوباره همانند آنچه در آن بخش آمده تولید کنید.
نکته :
هر زمان با مشکلی بعد از نصب درایور مواجه شدید و نتوانستید لاگین کنید میتوانید با دستور sudo nvidia-uninstall درایور اخیر را حذف و بعد لاگین نمایید.(وارد محیط متنی شوید با زدن کلید های Ctrl+Alt+F1 الی F6 و بعد از لاگین کردن با نام و پسورد خود ابتدا lightdm را غیرفعال و بعد درایور را حذف کنید. نکات مطرحی بالا را بیاد داشته باشید. بعنوان مثال تا وقتی که فایل blacklist-nouveau موجود باشد این درایور غیرفعال باقی میماند پس به هر دلیلی هر گاه نیاز به فعال سازی این درایور داشتید فایل مورد نظر را حذف کنید. با حذف درایور میتونید لاگین کنید و بعد کارهای بعدی اگر نیاز باشه رو انجام بدید)
نکته ۲:
اگر مشاهده کردید بعد از انجام تمامی کارها و مشاهده پیام نصب موفقیت آمیز درایور قادر به لاگین نیستید در اولین گام سعی کنید نگاهی به لاگ نصب درایور بیاندازید. این کار بشما کمک میکند تا مشکل اصلی را بیابید. (مسیر لاگ درایور بعد از پروسه نصب بشما نمایش داده میشود. همینطور در پوشه tmp قرار میگیرد. برای دیدن کافیست در محیط متنی تایپ کنید nano masire_log یا vi masire_log که البته شخصا nano را ترجیح میدهم. (دقت کنید در زمان کار با این ادیتور کلید های ترکیبی شامل Ctrl هستند. یعنی ^X یعنی Ctrl+X )
دو مشکل عمده که باعث این مساله میشوند به ترتیب ۱. فعال بودن secureboot و ۲. همخوانی نداشتن نسخه درایور با کرنل فعلی است. برای حل گزینه اول کافیست از تنظیمات بایوس مادربرد secureboot غیرفعال شود و بعد براحتی باید بتوانید لاگین کنید.
برای حل مشکل دوم (بعد از چک لاگ نصب درایور و اطمینان حاصل کردن از اینکه این مشکل بخاطر عدم همخوانی با نسخه کرنل است (مثلا مشکل dkms در بیلد ماجول مرتبط با درایور) ) یا از این آدرس (با VPN باز کنید) جدیدترین درایور را دانلود و نصب کنید و یا اگر نسخه جدیدی وجود نداشته یا آن نسخه هم دارای مشکل است از نسخه قدیمی تر که عموما از طریق additional drivers هم قابل دسترسی است استفاده کنید.
بعنوان مثال درایور ۳۸۷٫۲۶ (حاضر در فایل cuda_9.1.85_387.26_linux.run ) با کرنل ۴٫۱۳ (شامل 38-4.13.0 ) همخوانی نداشته و بعد از نصب, درایور بارگزاری و فعال نمیگردید چرا که در مرحله ساخت ماجول توسط DKMS با خطای زیر مواجه میشد :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
... Driver file installation is complete. Installing DKMS kernel module: Adding to DKMS: [## ] 5% ERROR: Failed to run `/usr/sbin/dkms build -m nvidia -v 387.26 -k 4.13.0-26-generic`: Kernel preparation unnecessary for this kernel. Skipping... Building module: cleaning build area.... 'make' -j4 NV_EXCLUDE_BUILD_MODULES='' KERNEL_UNAME=4.13.0-26-generic modules.......(bad exit status: 2) ERROR (dkms apport): binary package for nvidia: 387.26 not found Error! Bad return status for module build on kernel: 4.13.0-26-generic (x86_64) Consult /var/lib/dkms/nvidia/387.26/build/make.log for more information. Adding to DKMS: [##############################] 100% ERROR: Failed to install the kernel module through DKMS. No kernel module was installed; please try installing again without DKMS, or check the DKMS logs for more information. ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com. |
جستجو های بعدی به این تاپیک ختم گردید که نشانگر عدم همخوانی این نسخه از درایور با کرنل ما داشت (۲۳ فروردین ۹۷ ) و به این ترتیب با نصب نسخه جدید درایور ۳۹۰٫۴۸ مشکل مرتفع گردید.
لازم به ذکر است مشکلات کودا ۹.۱ تنها محدود به به عدم سازگاری با نسخه فعلی کرنل (در زمان نگارش این مقاله ۲۳ فروردین ۹۷ ) نیست . این نسخه از کودا هم دارای باگی است که انتظار میرود تنها در نسخه بعدی رفع شود به همین علت تا نسخه کودا ۹.۲ از نسخه کودا ۹ استفاده کنید نه کودا ۹.۱ !
نکته ۳ :
اگر در زمان نصب درایور با پیام The distribution-provided pre-install script failed! Are you sure you want to continue? مواجه شدید خیلی راحت روی continue کلیک کنید :
به همین صورت اگر در صفحه بعد با پیام Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later. مواجه شدید اینجا هم روی بله کلیک کنید.
دوباره به همین صورت برای نصب کتابخونه ۳۲ بیتی هم اگر از شما سوال شد روی بله کلیک کنید.
در انتها نیز :
و تمام!
خلاصه مراحل نصب Driver :
اطمینان حاصل کنید که کارت شما از برند NVIDIA است :
1 2 3 |
lspci | grep -i nvidia |
برای دانستن توزیع لینوکس و نسخه آن دستور زیر را بکار ببرید :
1 2 3 |
uname -m && cat /etc/*release |
برای دانستن نسخه کرنل دستور زیر را بکار ببرید
1 2 3 |
uname -r |
میتوانید دو دستور قبل در یک خط وارد کنید :
1 2 3 |
uname -m && uname -r && cat /etc/*release |
اطمینان حاصل کنید که سرآیندهای صحیح کرنل را در اختیار دارید با این دستور سرایندهای مختص کرنل فعلی خود را در صورت موجود نبود دانلود و نصب میکنیم:
1 2 3 |
sudo apt-get install linux-headers-$(uname -r) |
پیش نیازهای زیر را دانلود و نصب کنید اگر در سیستم موجود نیست :
1 2 3 |
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev |
بخش دوم :
با زدن کلید های Ctrl+Alt+F1 (الی F6 هر کدام را دوست دارید بزنید) وارد محیط متنی میشویم :
بررسی کنید آیا درایور nouveau فعال است یا خیر (اگر خروجی داشت یعنی فعال است):
1 2 3 |
lsmod | grep nouveau |
برای غیرفعال سازی آن ابتدا display manager را متوقف میکنیم :
1 2 3 |
sudo service lightdm stop |
سپس برای اینکه درایور در بوت بعدی بارگزاری نشود یک فایل (با هر اسم دلخواهی) در پوشه etc/modprobe.d/ با محتویات زیر ایجاد میکنیم ما از اسم blacklist-nouvea.conf استفاده میکنیم :
1 2 3 |
sudo nano /etc/modprobe.d/blacklist-nouveau.conf |
سپس در صفحه باز شده تایپ میکنیم :
1 2 3 4 |
blacklist nouveau options nouveau modset=0 |
با استفاده از ترکیب Ctrl+O فایل را ذخیره میکنیم و با کلید Ctrl+X خارج میشویم
حالا ماجول initramfs را دوباره بیلد میکنیم :
1 2 3 |
sudo update-initramfs -u |
حالا با دستور reboot سیستم را ری استارت میکنیم .
بخش سوم :
در صفحه لاگین با زدن کلید های Ctrl+Alt+F1 (الی F6 هر کدام را دوست دارید بزنید) وارد محیط متنی میشویم :
بررسی میکنیم که درایور nouveau فعال و بارگزاری نشده باشد(نباید هیچ خروجی ای دریافت کنید) :
1 2 3 |
lsmod | grep nouveau |
حال دوباره display manager را متوقف کرده تا بعد از ان به نصب درایور جدید اقدام کنیم . ابتدا :
1 2 3 |
sudo service lightdm stop |
به مسیری که فایل درایور جدید ما وجود دارد میرویم . از دستور cd استفاده میکنیم و اگر نیاز بود از دستور ls برای نمایش فایلهای موجود در یک پوشه استفاده میکنیم . مثلا فایل ما در پوشه Downloadsاست :
1 2 3 |
cd Downloads/ |
با دستور ls محتویات فولدر را میبینیم و بعد فایل مورد نظر را انتخاب میکنیم :
1 2 3 |
ls |
فرض میکنیم نام فایل مورد نظر ما (cuda_9.1.85_387.26_linux.run) است ابتدا permission اجرای آنرا تنظیم میکنیم . برای اینکار تایپ میکنیم :
1 2 3 |
sudo chmod +x cuda_9.1.85_387.26_linux.run |
بعد از این مرحله نسبت به نصب اقدام میکنیم :
1 2 3 |
sudo ./cuda_9.1.85_387.26_linux.run |
بعد از نصب موفقیت آمیز با display manager را دوباره به راه می اندازیم :
1 2 3 |
sudo service lightdm restart |
برای مشاهده اینکه همه چیز بدرستی نصب شده و قابل استفاده است تایپ کنید nvidia-smi . با این دستور مشخصات کارت گرافیک شما به همراه اطلاعاتی در باره دما اندازه حافظه و… بشما نمایش داده میشود . همچنین میتوانید از دستوراتی که در قبل جهت تست فعال بودن درایور استفاده کردید اینجا نیز استفاده کنید . بعنوان مثال در تصویر زیر مشاهده میکنید که من ابتدا با دستور lsmod | grep nouveau بررسی کردم آیا درایور nouveau فعال است یا خیر که خروجی ای دریافت نشد (به معنای غیرفعال بودن آن است) به همین شکل زمانی که این دستور برای nvidiaمورد استفاده قرار گرفت مشخص شد که درایور فعال بوده و آماده استفاده است. علاوه بر این دستور نتیجه اجرای nvidia-smi را نیز مشاهده میکنید. :
حالا بایستی به صفحه لاگین منتقل شده باشید.(اگرنشدید میتوانید با Ctrl+Alt+F به محیط گرافیکی برگردید) سعی کنید وارد شوید. اگر همه چیز بدرستی انجام شده باشد باید براحتی لاگین شوید. اگر لاگین موفقیت آمیز نبود و دوباره به صفحه لاگین بازگشتید به توضیحاتی که در ادامه آمده مراجعه کنید.
نصب کودا تولکیت :
اگر مراحل نصب درایور را انجام دادید نیازی به انجام این گام ها نیست اما اگر ندادید این مراحل را انجام دهید :
به مسیری که فایل Cuda toolkit ما وجود دارد میرویم . از دستور cd استفاده میکنیم و اگر نیاز بود از دستور ls برای نمایش فایلهای موجود در یک پوشه استفاده میکنیم . مثلا فایل ما در پوشه Downloads است :
1 2 3 |
cd Downloads/ |
با دستور ls محتویات فولدر را میبینیم و بعد فایل مورد نظر را انتخاب میکنیم :
1 2 3 |
ls |
فرض میکنیم نام فایل مورد نظر ما (cuda_9.1.85_387.26_linux.run) است ابتدا permission اجرای آنرا تنظیم میکنیم . برای اینکار تایپ میکنیم :
1 2 3 |
sudo chmod +x cuda_9.1.85_387.26_linux.run |
بعد از این مرحله نسبت به نصب اقدام میکنیم :
1 2 3 |
sudo ./cuda_9.1.85_387.26_linux.run |
شروع فرآیند نصب کودا تولکیت :
در ابتدا با موافقت نامه مواجه میشویم با زدن و نگه داشتن space میتوانید متن موافقت نامه را رد کرده و به بخش قبول یا رد آن برسید.
در گام بعد از ما سوال میشود آیا قصدداریم درایور Linux-x86_64 384.81 را نصب کنیم ؟ که چون قبلا درایور را نصب کردیم(خواه از طریق additional drivers خواه از طریق cuda toolkit ) اینجا no را تایپ و بعد انتر میکنیم.
سوال بعدی در باره نصب کودا تولکیت است. yes را تایپ و انتر میکنیم .
در ادامه از ما مسیری برای نصب کودا تولکیت خواسته میشود. ما با زدن انتر مسیر پیشفرض را قبول میکنیم.
سوال بعدی از ما میپرسد آیا دوست داریم یک symbolic link در مسیر /usr/local/cuda ایجاد کنیم ؟ جواب yes را تایپ میکنیم (همانطور که پیشتر با هم دیدیم برنامه های گونانگون براحتی میتوانند با چک این مسیر همیشه به اخرین نسخه کودا تولکیت اشاره کرده و از آن بهره مند شوند بدون آنکه نیازی به اعمال تغییرات در تنظیمات آنها باشد و بصورت پیشفرض هم معمولا همین مسیر را چک میکنند)
سوال بعدی از ما میپرسد آیا علاقه ای به نصب نمونه مثالها داریم ؟ (اگر کمبود فضا ندارید yes را انتخاب کنید در غیر اینصورت میتوانید no بزنید)
اگر در مرحله قبل yes را انتخاب کرده باشید در اینجا مسیری برای نصب نمونه مثالها میتوان وارد کرد. برای انتخاب مسیر پیشفرش انتر میکنیم (اگر علاقه ای به مسیر پیشفرض ندارید یا با کمبود فضا مواجه هستید میتوانید براحتی مسیر را تغییردهید)
و در اینجا عملیات نصب شروع میشود و بعد از مدتی اگر همه چیز بخوبی پیش رفته باشد با پیام پایان نصب مواجه میشوید.
در زیر خلاصه ای از انتخاب های حین نصب وارد شده است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFT WARE. ----------------- Do you accept the previously read EULA? accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? (y)es/(n)o/(q)uit: no Install the CUDA 9.0 Toolkit? (y)es/(n)o/(q)uit: yes Enter Toolkit Location [ default is /usr/local/cuda-9.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: yes Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: yes Enter CUDA Samples Location [ default is /home/hossein ]: |
و در زیر نیز پیام نصب موفقیت آمیز کودا را مشاهده میکنید :
بعد از نصب کودا تولکیت :
وارد پوشه homeشوید. Ctrl+h را بفشارید . فایل bashrc. را باز کنید. و محتویات زیر را به انتهای فایل اضافه کنید . در اینجا میتوانیم بجای cuda-9.1 یا cuda-9.0 (هر کدام را که نصب کردید) از cuda استفاده کنیم چرا که آن نیز به کودا ۹.۱ اشاره میکند:
1 2 3 |
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} |
برای سیستم های ۶۴ بیتی
1 2 3 |
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |
برای سیستم های ۳۲ بیتی
1 2 3 |
export LD_LIBRARY_PATH=/usr/local/cuda/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |
همینطور میتوانستید از طریق ترمینال این کار را انجام دهید :
1 2 3 |
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc |
1 2 3 |
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc |
دستور nvcc --version را در ترمینال بزنید.(برای مشاهده نسخه نصب شده) این فایل در پوشه usr/local/cuda-9.1/bin/ وجود دارد و بصورت مستقیم نیز میتوانید اجرا کنید. ما با قرار دادن آن در PATH سیستم این اجازه را میدهیم که توسط برنامه های مختلف براحتی قابل فراخوانی و استفاده باشند.
در ادامه در داخل ترمینال وارد پوشه cuda samples شوید و تایپ کنید make و انتر کنید. بعد از اتمام بیلد وارد پوشه bin شده و deviceQuery را اجرا کنید. با اینکار تمامی مثال ها کامپایل میشوند. (اگر علاقه ای به این کار ندارید میتوانید وارد پوشه ۱Utilities و بعد deviceQuery شده و دستور make را انجا وارد کنید.)
اگر همه چیز درست باشد خروجی همانند زیر بشما نمایش داده میشود :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
hossein@hossein:~/NVIDIA_CUDA-9.1_Samples/bin/x86_64/linux/release$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 1080" CUDA Driver Version / Runtime Version 9.1 / 9.1 CUDA Capability Major/Minor version number: 6.1 Total amount of global memory: 8116 MBytes (8510701568 bytes) (20) Multiprocessors, (128) CUDA Cores/MP: 2560 CUDA Cores GPU Max Clock rate: 1835 MHz (1.84 GHz) Memory Clock rate: 5005 Mhz Memory Bus Width: 256-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 2 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Supports Cooperative Kernel Launch: Yes Supports MultiDevice Co-op Kernel Launch: Yes Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1 Result = PASS |
و در گام آخر هم :
1 2 3 4 |
sudo bash -c "echo /usr/local/cuda/lib64/ > /etc/ld.so.conf.d/cuda.conf" sudo ldconfig |
نصب cuDNN :
برای نصب Cudnn هم بصورت زیر عمل کنید ابتدا وارد پوشه ای شوید که cudnn را دانلود کرده اید و سپس دستور زیر را بزنید.(مثلا در پوشه دانلود قرار دارد با cd Downloads وارد آن پوشه شده و بعد دستورات زیر ر اجرا میکنیم و مثلا نام فایل ما هم cudnn-9.1-linux-x64-v7.tgz میباشد. ) :
1 2 3 4 5 |
tar xvf cudnn-9.0-linux-x64-v7 sudo cp lib64/* /usr/local/cuda/lib64 sudo cp include/* /usr/local/cuda/include |
پرسش های متداول :
بعد از کپی کردن cuDNN هر بار که دستور sudo ldconfig را میزنم با خطای /sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link مواجه میشوم چکار کنم ؟
ابتدا مثل دستور زیر وارد مسیر /usr/local/cuda/lib64/ شوید :
1 2 3 |
cd /usr/local/cuda/lib64 |
سپس وارد کنید :
1 2 3 |
*ls -lha libcudnn |
شما باید دو symlink (به رنگ سبز توپر (bold)) و یک فایل تنها در خروجی خود مشاهده کنید خروجی ای همانند زیر :
1 2 3 4 5 6 7 |
hossein@hossein:/usr/local/cuda/lib64$ ls -lha libcudnn* -rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so -rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7 -rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7.0.5 -rw-r--r-- 1 root root 268M آوریل 15 12:03 libcudnn_static.a |
نسخه cudnn من ممکن است با شما متفاوت باشد من اینجا از cudnn7.0.5 استفاده میکنم . شما باید هر نسخه ای که استفاده کرده اید اینجا ببینید)
اگر libcudnn.so و libcudnn.so.7 از نوع symlinkنباشند این یکی از دلایل مواجه شما با این خطاست. دلیل دیگر خراب بودن symlink است. به منظور برطرف کردن این مشکل دستورات زیر را وارد کنید :
1 2 3 4 5 6 7 8 |
hossein@hossein:/usr/local/cuda/lib64$ sudo rm libcudnn.so [sudo] password for hossein: hossein@hossein:/usr/local/cuda/lib64$ sudo rm libcudnn.so.7 hossein@hossein:/usr/local/cuda/lib64$ sudo ln libcudnn.so.7.0.5 libcudnn.so.7 hossein@hossein:/usr/local/cuda/lib64$ sudo ln libcudnn.so.7 libcudnn.so hossein@hossein:/usr/local/cuda/lib64$ sudo ldconfig |
چطور میتوانم Cuda Toolkit را در مسیر متفاوتی نصب کنم؟
در زمان نصب با استفاده از runfile شما میتوانید مسیر نصب را بصورت دلخواه انتخاب کنید. اگر قصد دارید فرایند نصب بدون سوال و جواب و بصورت ساکت انجام شود میتوانید از سویچ های –toolkitpath و –samplespath برای تغییر مسیر نصب کودا تولکیت و مثالها استفاده کنید.
1 2 3 4 5 |
$ ./runfile.run --silent --toolkit --toolkitpath=/my/new/toolkit --samples --samplespath=/my/new/samples |
دقت کنید که بسته های RPM و Deb این قابلیت را به همراه ندارند و نمیتوانید مسیرهای پیشفرض را تغییردهید. برای کسب اطلاعات بیشتر میتوانید به سایت رسمی انویدیا مراجعه کنید. کلیک کنید
چرا با خطای “nvcc: No such file or directory” مواجه میشوم ؟
متغییر PATH شما بدرستی پیکربندی نشده است شما باید اطمینان حاصل کنید که متغیر PATH شما شامل پوشه bin از پوشه کودا تولکیت (جایی که کودا تولکیت را در آن نصب کردید) شما باشد. معمولا مسیر usr/local/cuda-9.1/bin/ مسیر مورد نظر است (با نسخه کودا خود تطبیق دهید. در بالا در این زمینه توضیح بیشتر داده ام )
برای اضافه کردن مسیر مورد نظر میتوانید ازدستور زیر استفاده کنید. (دقت کنید بعد از تغییر در متغییر محیطی PATH یا از یک ترمینال جدید استفاده کنید یا در ترمینال فعلی قبل از زدن دستور جدید دستور source ~/.bashrc را اجرا کنید تا اخرین تغییرات بارگذاری شوند.)
1 2 3 |
export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}} |
متغیر محیطی LD_LIBRRARY_PATH شما بدرستی پیکربندی نشده است. اطمینان حاصل کنید که LD_LIBRARY_PATH شما شامل پوشه های lib (اگر از سیستم ۳۲ بینی) و یا lib64 (اگر از سیستم ۶۴ بیتی استفاده میکنید) پوشه کودا تولکیت شما باشد.
معمولا مسیر usr/local/cuda-9.1/lib64/ مسیر مورد نظر است. (اگر با نسخه ۳۲ بیتی لینوکس کار میکنید مسیر usr/local/cuda-9.1/lib/ مورد نظر است) برای اضافه کردن مسیر مورد نظر میتوانید از دستور زیر استفاده کنید (دقت کنید بعد از تغییر در متغییر محیطی PATH یا از یک ترمینال جدید استفاده کنید یا در ترمینال فعلی قبل از زدن دستور جدید دستور source ~/.bashrc را اجرا کنید تا اخرین تغییرات بارگذاری شوند.) :
1 2 3 |
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |
1 2 3 |
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} |
چگونه کاری کنم که X server یک GPU را منحصرا برای compute_only در نظر نگیرد؟
برای اطمینان حاصل کردن از اینکه X server از یک GPUخاص برای Display استفاده نکند شما باید مشخص کنید که از کدام GPU دیگر برای اینکار استفاده نماید. برای اطلاعات بیشتر میتوانید اینجا را چک کنید.
چگونه میتوانم CUDA را با لپ تاپی که از یک iGPU (گرافیک انبرد) و یک dGPU(کارت گرافیک مجزا) در یک اوبونتو ۱۴٫۰۴ استفاده میکند بکار بگیرم ؟
بعد از نصب کودا مقدار درایور را برای کارت گرافیک اینتل در مسیر etc/X11/xorg.conf/ را همانطور که در زیر آمده بر روی 'modesetting' تنظیم کنید
1 2 3 4 5 6 7 |
"Section "Device "Identifier "intel "Driver "modesetting ... EndSection |
1 2 3 |
sudo update-grub |
اگر موارد بالا مشکل شما را حل نکرد در کامنت مشکل خودتون رو بفرمایید و همچنین نگاهی به صفحه رسمی انویدیا بندازید (نیاز به VPN دارید)
نکته مهم :
در زمان کپی کردن دستورات دقت کنید دستورات تغییر شکل ندهند و همانند چیزی که اینجا میبینید باشند.
سید حسین حسن پور
نسخه اول ۱۹ فروردین ۱۳۹۷
برای کفی نیاز به نصب کودا ۸ دارم
درایورو اول نصب نمیکنم و از درایور همراه کودا استفاده کردم ولی بعد نصب نمیتونستم وارد سیستم بشم و تو لاگین گیر کرد
ubuntu 16.04 , gtx 1080 , 4.13.0-38-generic
cuda_8.0.61_375.26_linux.run
سلام
برای کفی میتونید از کودا تولکیت ۹ و cudnn7استفاده کنید از کودا ۹.۱ هم میشه استفاده کرد اما چون باگ داره طرفش نرید.
برای درایور اول بگید SecureBoot رو غیرفعال کردید یا نه ؟ بعد از اینکه درایور رو نصب کردید اون دستورات اخر (lsmod | grep nvidia و امثالهم ) که نوشتم رو اجرا کردید خروجی گرفتید ؟
اگر نه میتونید با Ctrl+Alt+F1 وارد کنسول بشید و اون دستورات رو وارد کنید ببینید درایور نصب شده یا نه . علاوه بر اون یه نگاه به لاگ درایور بندازید ببینید چه خطایی رخ داده . تو پوشه temp معمولا مشخصه
اگر بعد از غیرفعال کردن Secureboot از تنظیمات بایوس باز مشکل داشتید در لاگین وارد بخش متنی بشید (همون Ctrl+Alt+F1 ) بعد nvidia-uninstallکنید . بعدش میتونید ریبوت یا اینکه Ctrl+Alt+F7 بزنید و لاگین کنید
ضمنا برای نصب درایور از همون Additional Driversاقدام کنید (اگه واقعا میخوایید از کودا ۸ استفاده کنید ) چون درایور کودا ۸ از درایوری که توسط Additional Drivers نصب میشه قدیمی تره (درایور کودا ۹ همونه و داریور کودا ۹.۱ جدیدتره (ولی مشکل داره و برای جدیدترین درایور از خود سایت انویدیا باید استفاده کنید که لینکش رو دادم )
مرسی با نصب درایور از قسمت ادیشنال درایور مشکل حل شد
سلام کودا ۹ با درایور ۳۸۴٫۱۱۱ گه از طریق ادیشنال درایور نصب میشه همخوانی داره؟
یا باید درایور ۳۹۰ نصب کنم
سلام.
نه نیازی به نصب ۳۹۰ ندارید . اون درایور کفایت میکنه .
اگر نیاز به چک دارید میتونید از بخش requirements این مطلب رو چک کنید.
اینم ببینید خوبه
سلام
سیستمم دارای مشخصات
gpu nvidia 740m 2Gb up tp 4Gb
cpu cori7QM
ram 8
میتونم
cuda 10.0.130_410.48_linux.run
cuDNN 7.3
نصب کنم !؟
لازم به توضیح که ورژن nvidia من ۳۹۰٫۴۸ است.
سلام.
من فکر میکنم قبلا جواب دادم به این سوال! اما به هر حال یکبار دیگه میگم
برای تنسورفلو و پای تورچ فعلا ۷تا cudnn7.2 و کودا ۹ و ۹٫۲ پشتیبانی میشن
دمت گرم که انقدر توضیح دادی خسته شدم بس خوندم الان زدم نصب کنه تو چی کشیدی که توضیح دادی واقعا دمت جیز
سلام و وقتتون بخیر
بنده کارت گرافیک رو از طریق Additional drivers به راحتی و بدون هیچ مشکلی نصب کردم . حالا باید مستقیم برم سراغ نصب cudnn . یعنی اجرای این سه خط :
tar xvf cudnn-9.0-linux-x64-v7
sudo cp lib64/* /usr/local/cuda/lib64
sudo cp include/* /usr/local/cuda/include
یا باید کار دیگه ای انجام بدم بعد !
می شه لطفا این سه خط کد رو واضح تر توضیح بدید.
جوابی که در زمان اجرای خط اول می گیرم اینه :
mardani@dr-mardani:/media/mardani/179c8070-45c3-4c50-b491-fe2ba89d3803/dr-salimi/my programs$ tar xvf cudnn-10.0-linux-x64-v7.3.1.20.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.3.1
cuda/lib64/libcudnn_static.a
در جواب خط دوم :
cp: cannot stat ‘lib64/*’: No such file or directory
ورژنی که من دانلود کردم اینه :
cudnn-10.0-linux-x64-v7.3.1.20.tgz
چه طوری می تونم ورژن کودا رو بفهمم که ببینم مناسب هست یا نه؟
از کجا ورژنکودا رو میخوایید در بیارید؟ پکیجش یا همین cudnn? یا نسخه نصبی در سیستم؟
نسخه نصبی سیستم
تو آموزش که اومده! (بخش بعد از نصب کودا تولکیت)
nvcc --version
رو در ترمینال بزنید بهتون میدهسلام
شرمنده من درست متوجه نشدم . بعد از نصب درایور از طریق Additional drivers باید سراغ کدام بخش از مراحل بالا رفت ؟(چک کردم کارت گرافیک درست نصب شده بود) باید کودا تولکیت رو نصب کنم !! (اخه در ابتدای نصب کودا تولکیت گفتید اگر مراحل نصب درایور را انجام دادید نیازی به انجام این گام ها نیست اما اگر ندادید این مراحل را انجام دهید :)از کجا شروع کنم ؟! یا مستقیم برم سراغ نصب cudnn؟؟ و سه دستور مربوط به آن !
بعد از اجرای دستور اول جواب زیر رو می گیرم:
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.3.1
cuda/lib64/libcudnn_static.a
ولی بعد از اجرای دستور دوم ارر مربوط به صحیح نبودن مسیر رو می ده . می شه لطفا مورد نحوه ادرس دهی هم راهنمایی بفرمایید
این ورژن
cudnn-10.0-linux-x64-v7.3.1.20.tgz
مناسب هست ؟؟؟!!!
درایور که نصب شد کودا تولکیت رو نصب کنید و بعد هم cudnn.
از کودا ۹ استفاده کنید و cudnn 7.3 (یا جدیدتر) که با همه فریمورکها مچ هست و مشکلی نداره .
ادرس دهی نکته خاصی نداره صرفا داریم محتویات اون پوشه ها رو منتقل میکنیم به پوشه cuda در پوشه usr .
وقت بخیر
فایل کودا تولکیت ۹ چه جوری می تونم دانلود کنم که پسوند .run باشه از هر سایتی که می گیرم با پسوند .debدانلود می کنه !! وقتی نصبش می کنم اون سوالاتی که فرمودید حین نصب می پرسه نمی یاد ولی ظاهرا نصب می شه. با دستورات زیر
sudo dpkg -i cuda-repo-ubuntu1604-۹-۰-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install -y cuda-۹.۰
وقتی دستور
nvidia-smi
می زنم جدول سیاه رنگ حاوی اطلاعات هم نشون داده می شه
ولی وقتی می خوام برم سراغ فایل های کودا سمپل و یا یوتیلیتی پیداشون نمی کنم . انگار اصلا وجود ندارند.
لطفا راهنمایی کنید.
وقتی وارد بخش دانلود کودا تولکیت میشید باید فایل run رو دانلود کنید. اینجا رو ببینید که چطور انتخابها صورت گرفته .
سلام بعد از اجرای دستور گام آخر این اررو رو می گیرم:
sudo bash -c “echo /usr/local/cuda/lib64/ > /etc/ld.so.conf.d/cuda.conf”
Command ‘sudo’ is available in ‘/usr/bin/sudo’
The command could not be located because ‘/usr/bin’ is not included in the PATH environment variable.
sudo: command not found
مشکل از کجاست ؟
می شه بفرمایید این دستور چی کار می کنه؟!
سلام .
اینجا رو چک کنید
سلام وقتتون بخیر
آقای حسن پور لطفا این خط رو ویرایش کنید: (در ادامه وارد پوشه cuda samples شوید و تایپ کنید make و انتر کنید.)
برای کسی مثل من که حرفه ای نیست . بهتره که توی متن اشاره کنید که منظور از باز کردن پوشه در واقع باز کردن ترمینال در این مسیر و اجرای make در این مسیر می باشد
متشکرم
سلام . خیلی ممنونم . ویرایش شد
البته من قبلش عرض کرده بودم در ترمینال موارد رو وارد میکنم و بنظرم مشخص بود ولی به هر صورت ویرایش کردم که این مشکل هم رفع بشه.
سلام. من در همان مراحل اولیه برای نصب cuda بعد از گذراندن مراحل زیر این خطا را می گیرم:
Installing the NVIDIA display driver …
The driver installation has failed due to an unknown error. please consult the driver installation log located at /var/log/nvidia-installer.log
مراحل :
Install Nvidia Accelerated Graphics Driver for Linux-x86_64 384.81?
yes
Do you want to install the OpenGL libraries?
yes
Do you want to run Nvidia-xconfig?
yes
Install the CUDA 9.0 Toolkit?
yes
Do you want to install a symbolic link at /usr/local/cuda?
yes
Install the CUDA 9.0 samples?
yes
سلام .
برای اینکه بدونید دقیقا چه خطایی رخ داده باید فایل /var/log/nvidia-installer.log رو باز کنید و محتویاتش رو ببینید.
سلام
من cuda نصب کردم ولی چند تا path دیگه داخل سایتش هست!!
اونارو به چه صورت نصب کنم!؟
سلام
یکم واضح تر صحبت کنید یعنی چی چندتا path دیگه داخل سایتش هست ؟
برای کودا همین موارد که اومده کفایت میکنه . نمیدونم باز در مورد چی صحبت میکنید.
سلام من دستور
lsmod | grep nouveau
رو میزنم ولی چیزی نشون نمیده. آیا نیازی هست display manager رو غیرفعال کنم؟
از طرف دیگه وقتی دستور
sudo service lightdm stop
را میزنم صفحه سیاه میشه و وقتی ctrl+alt+F2 رو میزنم تازه میره تو حالت متنی و حتما باید دستور
sudo service lightdm start
رو بزنم تا برگرده به محیط اوبونتو.
ممنون میشم اگر راهنمایی کنید که مدوم مراحل رو باید بیخیال بشم.
سلام.
موقع زدن دستورات باید تو حالت متنی باشید تا وقتی display manger رو غیرفعال میکنید کل تصویرتون سیاه نشه.
سلام روی سیستم cudnn7.0.5 هست ولی کدی که میخواستم ران کنم ارور داد که cudnn7.1.4 نیاز داره . چه جوری باید آپدیتش کنم cudnn رو؟
سلام. خیلی راحت نسخه مورد نظرتون رو دانلود کنید و مثل آموزشی که بالا هست سیستم رو بروز کنید. (اکسترکت کنید به مکان های مورد نظر)
البته اگر برنامه شما کانفیگ خاصی داره میتونید cudnn جدید رو هرجایی خواستید اکسترکت کنیدو مسیرش رو در کانفیگ برنامه اتون مشخص کنید.
با سلام وتشکر فراوان از مطالب بسیار مفیدتان
من انویدیا را به سختی و پس از تغییر چند سیستم عامل روی ابونتو۱۸٫۱ نصب کردم وجدول اول با دستور nvidia-smi مشاهده میشود همچنین دستور
sudo apt install nvidia-cuda-toolkit اجرا میشود به نظر کودا نصب میشود ولی در مسیر usr/local پوشه ای با این اسم وجود ندارد
آیا کودا نصب شده است ممنون
سلام
بله نصب شده .
در نسخه ۱۸٫۱ اوبونتو کودا ۹٫۱ به ریپازیتوری اصلی اضافه شده. هرچند من برای نصب کودا همیشه پیشنهاد میکنم از همین شیوه ای که اینجا عرض کردم (دانلود فایل run از سایت انویدیا و بعد اجرای اون توسط خودتون) استفاده بشه چون همه بخشها رو خودتون مشخص میکنید
و کنترل کامل دارید در مسیر نصب و اینکه چه چیزی نصب بشه یا نه.
با سلام وتشکر از راهنمایی ارزشمندتان
من روی سیستم ابونتو انودیا وکودا را نصب کردم در مرحله بعد برای نصب برنامه گرومکس در ارتباط با ورژن کامپایلرها مشکل پیش میاد.مثلا ورژن کودا ۱۰ با gcc بالاتر از ۷ سازگار نیست وقتی ورژن gcc را به ۶ تغییر میدهم دوباره گرافیک و کودا به هم میریزند.
ممنون میشم راهنمایی کنید
کودا ۱۰ به بعد اتفاقا از GCC 7 به بالا یعنی GCC 8.xxx پشتیبانی میکنه! : https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features
و اینجا رو ببینید : https://stackoverflow.com/a/46380601/2736559
سلام وقت بخیر من می خواهم cuda را با استفاده از WSL2 نصب کنم اما مشکلی که هست وقتی درایورش را دانلود کردم و سپس اجراش کردم میگه درایور از این نسخه ویندوز پشتیبانی نمی کند.
ممکنه من رو راهنمایی کنید چندین روز هست که درگیرش هستم.
با سپاس
سلام اینجا رو ببینید
سلام ممنون از اموزشتون من مراحل رو رفتم و نصب کردم والان دستور nvcc –versionرا هم میزنم ورژن کودا را میاورد اما سوال این هست برای اجرای یک پروژه که نیاز به کودا دارد چطوری از طریق اناکوندا بهش بگیم که از همین کودا استفاده کند؟(به عبارت دیگر من یک پرژوه در گیت هاب دیدم که برای ران کردنش ارور میده کودا نصب نیست)
پیشاپیش ممنونم
سلام.
وقتی کودا رو نصب کنید تو مسیر پیشفرض، همه برنامه هایی که از کودا بخوان استفاده کنن اون مسیر رو چک میکنن و نیازی نیست شما کار خاصی بکنید. (شاید لازم باشه sudo ldconfig رو یکبار بزنید و بعد اسکریپتتون رو تست کنید یا نیاز باشه یکبار ترمینال رو ببندید و دوباره باز کنید (بسته به محیطتتون و نیازمندی های اسکریپت و.. که استفاده میکنید) )
آناکوندا هم یک توزیع پایتون هست. در اصل چیزی که شما استفاده میکنید همون پایتون معمولیه و تنظیمات مرتبط تو اسکریپتی که ران میکنید مشخص میشه.
اگر خطا میگیرید ممکنه بخاطر عدم وجود نسخه خاصی از کودا باشه. نیازمندی های پروژه اتون رو ببینید و چک کنید که از یک نسخه یکسان استفاده میکنید.اون نکاتی که بالا گفتم رو هم یکبار بررسی کنید)
ضمنا کتابخونه هایی مثل پایتورچ برای اجرا نیازی به نصب کودا روی سیستم ندارن و اگر هم کودا نصب باشه از نسخه روی سیستم استفاده نمیکنن. بلکه فایلهای مورد نیاز همراه خود پایتورچ نصب میشه. این هم نکته مهمیه که باید در نظر داشته باشید
تنسورفلو تا جایی که یادم میاد اینطور نبود و باید کودا رو سیستم نصب میبود.
به هر حال متن خطایی رو هم که میگیرید عنوان کنید میتونه کمک کننده باشه. بیشتر ازاین چیزی به ذهنم نمیرسه در حال حاضر.
خیلی خیلی ممنونم برای وقتی که گذاشتید.
این اروری هست که من دریافت میکنم.
Attempting to fetch value instead of handling error Internal: no supported devices found for platform CUDA
البته این ارور رو هم دریافت میکنم
cuda device (0) is of insufficient compute capability: 3.5 required, device is 3.0
اینجوری که متوجه شدم کارت گرافیکم قدیمی هست ولی سوالی که پیش میاد پس چرا اخرین ورژن کودا را توانستم نصب کنم؟