一、背景与问题形貌
笔者按照网上教程,使用runfile方法去设置cuda的时候出现各种问题,第一步下载就不成功,每次下载到末了一秒都出现段错误(核心已转储),尝试了反复下载之后,换署理也是不行,,又尝试了两种方法,末了解决了,给遇到同样问题的同学一点我自己实用的解决方案~
我的系统版本是Ubuntu20.04,通过runfile安装cuda,cuda版本是11.03
二、解决办法
1.栈溢出,修改栈限制
在终端使用下列下令,表现当前 shell 会话中用户的各种资源限制,资源限制由 Linux 内核定义,用于防止用户进程斲丧过多的系统资源。
然后会输出以下内容
- core file size (blocks, -c) 0
- data seg size (kbytes, -d) unlimited
- scheduling priority (-e) 0
- file size (blocks, -f) unlimited
- pending signals (-i) 63156
- max locked memory (kbytes, -l) 65536
- max memory size (kbytes, -m) unlimited
- open files (-n) 1024
- pipe size (512 bytes, -p) 8
- POSIX message queues (bytes, -q) 819200
- real-time priority (-r) 0
- stack size (kbytes, -s) 8192
- cpu time (seconds, -t) unlimited
- max user processes (-u) 63156
- virtual memory (kbytes, -v) unlimited
- file locks (-x) unlimited
复制代码 看到stack size只有8192,我们下面要改大栈空间,以下代码任意一个
大概
然后再输入
就可以看到stack size扩大了
- core file size (blocks, -c) 0
- data seg size (kbytes, -d) unlimited
- scheduling priority (-e) 0
- file size (blocks, -f) unlimited
- pending signals (-i) 63156
- max locked memory (kbytes, -l) 65536
- max memory size (kbytes, -m) unlimited
- open files (-n) 1024
- pipe size (512 bytes, -p) 8
- POSIX message queues (bytes, -q) 819200
- real-time priority (-r) 0
- stack size (kbytes, -s) unlimited
- cpu time (seconds, -t) unlimited
- max user processes (-u) 63156
- virtual memory (kbytes, -v) unlimited
- file locks (-x) unlimited
复制代码
但是要注意当前终端改了巨细,如果换了一个终端,照旧默认的stack size,所以接下来就在当前的终端继承输入下令下载cuda_xxxx_xxxx_linux.run,即以下下令
举个例子11.0.3版本的Cuda
- wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
复制代码 2.不消wget下载,使用多线程下载工具axel
第一步安装axel
- $ sudo apt-get install axel
复制代码 第二步将原来的wget下载换为axel下载(注意下面的代码中的网站换为自己必要的网站)
- axel https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
复制代码 别的还有一个本领,可以加快下载速度
就是将.com换为.cn
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |