Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jimver/cuda-toolkit
GitHub Action to install CUDA
https://github.com/jimver/cuda-toolkit
action cuda cuda-toolkit github-actions nvidia nvidia-cuda
Last synced: 1 day ago
JSON representation
GitHub Action to install CUDA
- Host: GitHub
- URL: https://github.com/jimver/cuda-toolkit
- Owner: Jimver
- License: mit
- Created: 2021-03-10T11:27:50.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-11-15T21:34:28.000Z (about 1 month ago)
- Last Synced: 2024-12-20T17:04:12.811Z (1 day ago)
- Topics: action, cuda, cuda-toolkit, github-actions, nvidia, nvidia-cuda
- Language: TypeScript
- Homepage:
- Size: 11.4 MB
- Stars: 156
- Watchers: 4
- Forks: 59
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# cuda-toolkit
This action installs the [NVIDIA® CUDA® Toolkit](https://developer.nvidia.com/cuda-toolkit) on the system. It adds the cuda install location as `CUDA_PATH` to `GITHUB_ENV` so you can access the CUDA install location in subsequent steps. `CUDA_PATH/bin` is added to `GITHUB_PATH` so you can use commands such as `nvcc` directly in subsequent steps. Right now both `windows-2019` and `ubuntu-20.04` runners have been tested to work successfully.
## Inputs
### `cuda`
**Optional** The CUDA version to install. View `src/link/windows-links.ts` and `src/link/linux-links.ts` for available versions.
Default: `'12.6.1'`.
### `sub-packages`
**NOTE: On Linux this only works with the 'network' method [view details](#method)**
**Optional**
If set, only the specified CUDA subpackages will be installed.
Only installs specified subpackages, must be in the form of a JSON array. For example, if you only want to install nvcc and visual studio integration: `'["nvcc", "visual_studio_integration"]'` (double quotes required)Default: `'[]'`.
### `non-cuda-sub-packages`
**NOTE: This only works on Linux with the 'network' method [view details](#method)**
**Optional**
If set, only the specified CUDA subpackages will be installed without prepending the "cuda-" prefix.
Only installs specified subpackages without prepending the "cuda-" prefix, must be in the form of a JSON array. For example, if you only want to install libcublas and libcufft: `'["libcublas", "libcufft"]'` (double quotes required)Default: `'[]'`.
### `method`
**Optional**
Installation method, can be either `'local'` or `'network'`.- `'local'` downloads the entire installer with all packages and runs that (you can still only install certain packages with `sub-packages` on Windows).
- `'network'` downloads a smaller executable which only downloads necessary packages which you can define in `sub-packages`.Default: `'local'`.
### `linux-local-args`
**Optional**
(For Linux and 'local' method only) override arguments for the Linux `.run` installer. For example if you don't want samples use `'["--toolkit"]'` (double quotes required)
See the [Nvidia Docs](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile-advanced) for available options. Note that the `--silent` option is already always added by the action itself.Default: `'["--toolkit", "--samples"]'`.
### `log-file-suffix`
**Required with matrix builds**
Add suffix to the log file name which gets uploaded as an artifact. This **has** to be set when running a matrix build.
The log file already contains the OS type (Linux/Windows) and install method (local/network) but it is not aware of other matrix variables, so add those here.For example if you use multiple linux distros:
```
jobs:
CI:
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-20.04]
runs-on: ${{ matrix.os }}
steps:
- uses: Jimver/cuda-toolkit@master
id: cuda-toolkit
with:
log-file-suffix: '${{matrix.os}}.txt'```
Default: `'log.txt'`
## Outputs
### `cuda`
The cuda version installed (same as `cuda` from input).
### `CUDA_PATH`
The path where cuda is installed (same as `CUDA_PATH` in `GITHUB_ENV`).
## Example usage
```yaml
steps:
- uses: Jimver/[email protected]
id: cuda-toolkit
with:
cuda: '12.5.0'- run: echo "Installed cuda version is: ${{steps.cuda-toolkit.outputs.cuda}}"
- run: echo "Cuda install location: ${{steps.cuda-toolkit.outputs.CUDA_PATH}}"
- run: nvcc -V
```