in perfkitbenchmarker/linux_packages/cuda_toolkit.py [0:0]
def AptInstall(vm):
"""Installs CUDA toolkit on the VM if not already installed."""
version_to_install = FLAGS.cuda_toolkit_version
if version_to_install == 'None' or not version_to_install:
return
current_version = GetCudaToolkitVersion(vm)
if current_version == version_to_install:
return
cuda_path = f'/usr/local/cuda-{FLAGS.cuda_toolkit_version}'
if vm.TryRemoteCommand(f'stat {cuda_path}'):
vm.RemoteCommand('sudo rm -rf /usr/local/cuda', ignore_failure=True)
vm.RemoteCommand(f'sudo ln -s {cuda_path} /usr/local/cuda')
return
vm.Install('build_tools')
vm.Install('wget')
vm.Install('nvidia_driver')
if version_to_install == '9.0':
_InstallCuda9Point0(vm)
elif version_to_install == '10.0':
_InstallCuda10Point0(vm)
elif version_to_install == '10.1':
_InstallCuda10Point1(vm)
elif version_to_install == '10.2':
_InstallCuda10Point2(vm)
elif version_to_install == '11.0':
_InstallCuda11Point0(vm)
elif version_to_install == '11.1':
_InstallCuda11Point1(vm)
elif version_to_install == '11.2':
_InstallCuda11Point2(vm)
elif version_to_install == '11.3':
_InstallCuda11Point3(vm)
elif version_to_install == '11.4':
_InstallCuda11Point4(vm)
elif version_to_install == '11.5':
_InstallCuda11Point5(vm)
elif version_to_install == '11.6':
_InstallCuda11Point6(vm)
elif version_to_install == '11.7':
_InstallCuda11Point7(vm)
elif version_to_install == '11.8':
_InstallCuda11Point8(vm)
elif version_to_install == '12.0':
_InstallCuda12Point0(vm)
elif version_to_install == '12.1':
_InstallCuda12Point1(vm)
elif version_to_install == '12.2':
_InstallCuda12Point2(vm)
elif version_to_install == '12.6':
_InstallCuda12Point6(vm)
else:
raise UnsupportedCudaVersionError()
DoPostInstallActions(vm)
# NVIDIA CUDA Profile Tools Interface.
# This library provides advanced profiling support
if version_to_install in ('9.0', '10.0'):
# cupti is part of cuda>=10.1, and installed as cuda-cupti-10-1/2
vm.RemoteCommand('sudo apt-get install -y libcupti-dev')