我在 Tegra-K1 板 (Toradex Apalis-TK1) 上运行 Debian Jessie,安装了 CUDA 工具包 7.0 并nvidia_drivers.tbz2
从杰森TK1 21.5包裹。
现在我明白了
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Fri_Oct_16_15:23:46_CDT_2015
Cuda compilation tools, release 7.0, V7.0.70
$ cat /etc/ld.so.conf.d/nvidia-tegra.conf
/usr/lib/tegra
$ cat /etc/nv_tegra_release
# R21 (release), REVISION: 5.0, GCID: 7273100, BOARD: ardbeg, EABI: hard, DATE: Wed Jun 8 04:19:09 UTC 2016
50e7e42bde409d5ba0eb410d803b991cd6c4c32b */usr/lib/xorg/modules/extensions/libglx.so
cc612c5afcb8a76a5b847fc500d2354582d32abb */usr/lib/xorg/modules/drivers/nvidia_drv.so
e96a78d9c3947a980f065d96557f98c70500db17 */usr/lib/arm-linux-gnueabihf/tegra/libnvomxilclient.so
... and so on ...
我能够构建NVIDIA_CUDA-7.0_Samples
(make SMS=53
使用避免链接问题), 但
1_Utilities/deviceQuery/deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL
我怎样才能缩小问题的原因?
答案1
在咨询开发者论坛后,我发现:错误消息是正确的(有时会发生这种情况)。 Cuda 工具包 7 需要 R23 版本的 cuda 驱动程序,但适用于 Tegra K1 的最新版本是 R21。
因此,您需要较旧的工具包版本,但 nvidia 网站上仅提供版本 7 可供下载。旧版本只能通过 JetPack 访问,但 JetPack 仅限 Ubuntu(无法在 Debian 上安装)。
但他们给了我解决这个问题的指示:
- 下载JetPack 2.3.1
- 提取存档的内容:
bash JetPack-L4T-2.3.1-linux-x64.run –noexec
- 转到
_installer
您将找到Chooser
二进制文件的目录 ./Chooser
-> 它可能会要求 libpng12,所以我在家里安装了这个库:export LD_LIBRARY_PATH+=:path_to_libpng/lib
然后重试./Chooser
- GUI 出现,但这并不是重要的:您可能会注意到
repository.json
创建了一个文件,其中包含 cuda 等软件包的所有链接。只需找到与您的 CUDA 版本相对应的链接即可。
.deb
从 json 文件中给定的 URL下载软件包wget
,使用 进行安装dpkg -i
,然后
apt update
apt search cuda
apt install ...
显然,Nvidia 希望我们转向 TX1 和 TX2,而不是坚持 TK1...