从终端查询最新版本的CUDA SDK / Toolkit?

时间:2012-04-22 19:28:58

标签: bash cuda install expect

有没有办法 - 从终端 - 查询最新的工具包/ SDK版本???

e.g。 NVIDIA是否有某种服务器可以登录并发出离散命令来获取最新的SDK和工具包?

............................................... ....................................
背景

我写了一个小脚本来执行核心CUDA组件的无人参与安装 - 开发驱动程序,工具包和SDK。

请注意,驱动程序已经自动更新,因为我向它们传递了一个标志,告诉他们检查最新版本,所以我只需要下载一次,所有未来的CUDA安装更新现在都可以使用

有一些初步错误,但在一些帮助下解决了这个问题。 [1] [2]

如果正在运行,init将取消X11服务器,以完成视频开发驱动程序的安装。 yum如果不存在,则安装expect

#!/bin/bash 
CR="\r"
YES="\"Yes\r\""
INSTALL_PATH_REQUEST="\"Enter install path\""
CUDA_PATH_REQUEST="\"Enter CUDA install path\""
UNINSTALL_REQUEST="\"Would you like to uninstall?\""
TOOLKIT=`ls -t cudatoolkit* | head -n 1`
TOOLKIT_EXPECT="sh $TOOLKIT"
SDK=`ls -t gpucomputingsdk* | head -n 1`
SDK_INSTALL_PATH="\"/usr/local/CUDA_SDK\r\""
SDK_EXPECT="sh $SDK"
DUMMY="dummy"
/bin/su root -c "yum -q -y install expect expectk;
/sbin/init 3; sh `ls -t NVIDIA*|head -n 1` -s --update -a -X;
/usr/bin/expect <<EOF;
spawn $TOOLKIT_EXPECT
expect -timeout 300 $INSTALL_PATH_REQUEST
send $CR
expect -timeout 300 {
 {Would you like to uninstall?} {
  send $YES

  exp_continue
 }
 expect -timeout 500 $DUMMY
 eof
}
EOF
/usr/bin/expect <<EOF;
spawn $SDK_EXPECT
expect -timeout 300 $INSTALL_PATH_REQUEST
send $SDK_INSTALL_PATH
expect -timeout 300 $CUDA_PATH_REQUEST
send $CR
expect -timeout 500 $DUMMY
EOF
/sbin/init 5"

如果有人能够弄清楚如何远程查询SDK和工具包以进行更新,那么这将是(几乎)完美的无人值守安装程序。如果您认为我遗漏了任何东西,那么任何其他建议也会受到赞赏。

P.S。您需要在同一目录中使用dev驱动程序,工具包和SDK文件才能使其正常工作。当它要求您输入密码时,那就是要求您提供root密码。我选择在/usr/local/CUDA_SDK/中安装SDK以允许所有用户访问。如果您希望将其安装在其他位置,请在脚本中进行更改。

1 个答案:

答案 0 :(得分:1)

我不相信NVIDIA提供了查询最新发布的驱动程序,工具包,SDK等版本的方法。在Windows驱动程序上现在有一个自动更新功能,而linux驱动程序也可能有一个(不是确定),但我认为我们没有办法查询当前的发布版本。

对于不同的平台和技术,总有各种驱动程序版本(例如Tesla的预发布开发人员驱动程序,Windows的WHQL驱动程序等)。

我认为大多数集群运营商只想升级到任何软件的稳定版本,而且每年最多只发生几次,所以我认为进行人工检查(和下载)并不是什么大问题最新版本,然后从下载的文件中自动安装。