diff --git a/.devcontainer/llvm20-cuda12.0/devcontainer.json b/.devcontainer/gcc11-cuda12.9/devcontainer.json similarity index 78% rename from .devcontainer/llvm20-cuda12.0/devcontainer.json rename to .devcontainer/gcc11-cuda12.9/devcontainer.json index 8dbbd0c89..977f261c3 100644 --- a/.devcontainer/llvm20-cuda12.0/devcontainer.json +++ b/.devcontainer/gcc11-cuda12.9/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "rapidsai/devcontainers:25.10-cpp-llvm20-cuda12.0", + "image": "rapidsai/devcontainers:26.02-cpp-gcc11-cuda12.9", "hostRequirements": { "gpu": "optional" }, @@ -16,18 +16,14 @@ "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", "NVCC_APPEND_FLAGS": "-t=100", - "SCCACHE_DIST_CONNECT_TIMEOUT": "${localEnv:SCCACHE_DIST_CONNECT_TIMEOUT:30}", - "SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE": "${localEnv:SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE:true}", - "SCCACHE_DIST_KEEPALIVE_ENABLED": "${localEnv:SCCACHE_DIST_KEEPALIVE_ENABLED:true}", - "SCCACHE_DIST_KEEPALIVE_INTERVAL": "${localEnv:SCCACHE_DIST_KEEPALIVE_INTERVAL:20}", - "SCCACHE_DIST_KEEPALIVE_TIMEOUT": "${localEnv:SCCACHE_DIST_KEEPALIVE_TIMEOUT:600}", "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", - "SCCACHE_DIST_REWRITE_INCLUDES_ONLY": "${localEnv:SCCACHE_DIST_REWRITE_INCLUDES_ONLY:true}", "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", - "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:7200}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", "SCCACHE_BUCKET": "rapids-sccache-devs", "SCCACHE_REGION": "us-east-2", "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", "SCCACHE_SERVER_PORT": "4225", "SCCACHE_SERVER_LOG": "sccache=debug" }, diff --git a/.devcontainer/llvm20-cuda12.9/devcontainer.json b/.devcontainer/gcc12-cuda12.9/devcontainer.json similarity index 78% rename from .devcontainer/llvm20-cuda12.9/devcontainer.json rename to .devcontainer/gcc12-cuda12.9/devcontainer.json index 720d14af3..6bee91cc0 100644 --- a/.devcontainer/llvm20-cuda12.9/devcontainer.json +++ b/.devcontainer/gcc12-cuda12.9/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "rapidsai/devcontainers:25.10-cpp-llvm20-cuda12.9", + "image": "rapidsai/devcontainers:26.02-cpp-gcc12-cuda12.9", "hostRequirements": { "gpu": "optional" }, @@ -16,18 +16,14 @@ "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", "NVCC_APPEND_FLAGS": "-t=100", - "SCCACHE_DIST_CONNECT_TIMEOUT": "${localEnv:SCCACHE_DIST_CONNECT_TIMEOUT:30}", - "SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE": "${localEnv:SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE:true}", - "SCCACHE_DIST_KEEPALIVE_ENABLED": "${localEnv:SCCACHE_DIST_KEEPALIVE_ENABLED:true}", - "SCCACHE_DIST_KEEPALIVE_INTERVAL": "${localEnv:SCCACHE_DIST_KEEPALIVE_INTERVAL:20}", - "SCCACHE_DIST_KEEPALIVE_TIMEOUT": "${localEnv:SCCACHE_DIST_KEEPALIVE_TIMEOUT:600}", "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", - "SCCACHE_DIST_REWRITE_INCLUDES_ONLY": "${localEnv:SCCACHE_DIST_REWRITE_INCLUDES_ONLY:true}", "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", - "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:7200}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", "SCCACHE_BUCKET": "rapids-sccache-devs", "SCCACHE_REGION": "us-east-2", "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", "SCCACHE_SERVER_PORT": "4225", "SCCACHE_SERVER_LOG": "sccache=debug" }, diff --git a/.devcontainer/llvm20-cuda13.0/devcontainer.json b/.devcontainer/llvm16-cuda12.9/devcontainer.json similarity index 78% rename from .devcontainer/llvm20-cuda13.0/devcontainer.json rename to .devcontainer/llvm16-cuda12.9/devcontainer.json index caf06140c..4233eac90 100644 --- a/.devcontainer/llvm20-cuda13.0/devcontainer.json +++ b/.devcontainer/llvm16-cuda12.9/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "rapidsai/devcontainers:25.10-cpp-llvm20-cuda13.0", + "image": "rapidsai/devcontainers:26.02-cpp-llvm16-cuda12.9", "hostRequirements": { "gpu": "optional" }, @@ -16,18 +16,14 @@ "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", "NVCC_APPEND_FLAGS": "-t=100", - "SCCACHE_DIST_CONNECT_TIMEOUT": "${localEnv:SCCACHE_DIST_CONNECT_TIMEOUT:30}", - "SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE": "${localEnv:SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE:true}", - "SCCACHE_DIST_KEEPALIVE_ENABLED": "${localEnv:SCCACHE_DIST_KEEPALIVE_ENABLED:true}", - "SCCACHE_DIST_KEEPALIVE_INTERVAL": "${localEnv:SCCACHE_DIST_KEEPALIVE_INTERVAL:20}", - "SCCACHE_DIST_KEEPALIVE_TIMEOUT": "${localEnv:SCCACHE_DIST_KEEPALIVE_TIMEOUT:600}", "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", - "SCCACHE_DIST_REWRITE_INCLUDES_ONLY": "${localEnv:SCCACHE_DIST_REWRITE_INCLUDES_ONLY:true}", "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", - "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:7200}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", "SCCACHE_BUCKET": "rapids-sccache-devs", "SCCACHE_REGION": "us-east-2", "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", "SCCACHE_SERVER_PORT": "4225", "SCCACHE_SERVER_LOG": "sccache=debug" }, diff --git a/.devcontainer/llvm21-cuda12.0/devcontainer.json b/.devcontainer/llvm21-cuda12.0/devcontainer.json new file mode 100644 index 000000000..0cc54cfc3 --- /dev/null +++ b/.devcontainer/llvm21-cuda12.0/devcontainer.json @@ -0,0 +1,72 @@ +{ + "image": "rapidsai/devcontainers:26.02-cpp-llvm21-cuda12.0", + + "hostRequirements": { "gpu": "optional" }, + + "initializeCommand": ["/bin/bash", "-c", "mkdir -p .cache/.{aws,cache,config}"], + + "postCreateCommand": [ + "/bin/bash", + "-c", + "if test -z \"${DISABLE_SCCACHE:+x}\"; then echo \"export SCCACHE_DIST_URL='https://$(dpkg --print-architecture).$(uname -s | tr '[:upper:]' '[:lower:]').sccache.rapids.nvidia.com'\" >> /home/coder/.bashrc; fi" + ], + + "containerEnv": { + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "NVCC_APPEND_FLAGS": "-t=100", + "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", + "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "SCCACHE_REGION": "us-east-2", + "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", + "SCCACHE_SERVER_PORT": "4225", + "SCCACHE_SERVER_LOG": "sccache=debug" + }, + + "workspaceFolder": "/home/coder/stdexec", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/stdexec,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.cache/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + + "customizations": { + "vscode": { + "extensions": [ + "augustocdias.tasks-shell-input", + "ericniebler.erics-build-output-colorizer" + ], + "settings": { + "debug.toolBarLocation": "docked", + "editor.hover.delay": 500, + "editor.hover.sticky": true, + "editor.inlayHints.enabled": "off", + "files.autoSave": "off", + "files.trimFinalNewlines": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "[c]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cuda-cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + } + } + } + } +} diff --git a/.devcontainer/llvm21-cuda12.9/devcontainer.json b/.devcontainer/llvm21-cuda12.9/devcontainer.json new file mode 100644 index 000000000..29c26a45d --- /dev/null +++ b/.devcontainer/llvm21-cuda12.9/devcontainer.json @@ -0,0 +1,72 @@ +{ + "image": "rapidsai/devcontainers:26.02-cpp-llvm21-cuda12.9", + + "hostRequirements": { "gpu": "optional" }, + + "initializeCommand": ["/bin/bash", "-c", "mkdir -p .cache/.{aws,cache,config}"], + + "postCreateCommand": [ + "/bin/bash", + "-c", + "if test -z \"${DISABLE_SCCACHE:+x}\"; then echo \"export SCCACHE_DIST_URL='https://$(dpkg --print-architecture).$(uname -s | tr '[:upper:]' '[:lower:]').sccache.rapids.nvidia.com'\" >> /home/coder/.bashrc; fi" + ], + + "containerEnv": { + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "NVCC_APPEND_FLAGS": "-t=100", + "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", + "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "SCCACHE_REGION": "us-east-2", + "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", + "SCCACHE_SERVER_PORT": "4225", + "SCCACHE_SERVER_LOG": "sccache=debug" + }, + + "workspaceFolder": "/home/coder/stdexec", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/stdexec,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.cache/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + + "customizations": { + "vscode": { + "extensions": [ + "augustocdias.tasks-shell-input", + "ericniebler.erics-build-output-colorizer" + ], + "settings": { + "debug.toolBarLocation": "docked", + "editor.hover.delay": 500, + "editor.hover.sticky": true, + "editor.inlayHints.enabled": "off", + "files.autoSave": "off", + "files.trimFinalNewlines": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "[c]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cuda-cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + } + } + } + } +} diff --git a/.devcontainer/llvm21-cuda13.0/devcontainer.json b/.devcontainer/llvm21-cuda13.0/devcontainer.json new file mode 100644 index 000000000..dab6fb7a5 --- /dev/null +++ b/.devcontainer/llvm21-cuda13.0/devcontainer.json @@ -0,0 +1,72 @@ +{ + "image": "rapidsai/devcontainers:26.02-cpp-llvm21-cuda13.0", + + "hostRequirements": { "gpu": "optional" }, + + "initializeCommand": ["/bin/bash", "-c", "mkdir -p .cache/.{aws,cache,config}"], + + "postCreateCommand": [ + "/bin/bash", + "-c", + "if test -z \"${DISABLE_SCCACHE:+x}\"; then echo \"export SCCACHE_DIST_URL='https://$(dpkg --print-architecture).$(uname -s | tr '[:upper:]' '[:lower:]').sccache.rapids.nvidia.com'\" >> /home/coder/.bashrc; fi" + ], + + "containerEnv": { + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "NVCC_APPEND_FLAGS": "-t=100", + "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", + "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "SCCACHE_REGION": "us-east-2", + "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", + "SCCACHE_SERVER_PORT": "4225", + "SCCACHE_SERVER_LOG": "sccache=debug" + }, + + "workspaceFolder": "/home/coder/stdexec", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/stdexec,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.cache/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + + "customizations": { + "vscode": { + "extensions": [ + "augustocdias.tasks-shell-input", + "ericniebler.erics-build-output-colorizer" + ], + "settings": { + "debug.toolBarLocation": "docked", + "editor.hover.delay": 500, + "editor.hover.sticky": true, + "editor.inlayHints.enabled": "off", + "files.autoSave": "off", + "files.trimFinalNewlines": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "[c]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cuda-cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + } + } + } + } +} diff --git a/.devcontainer/nvhpc25.7/devcontainer.json b/.devcontainer/nvhpc25.7/devcontainer.json index 550546170..b39e35553 100644 --- a/.devcontainer/nvhpc25.7/devcontainer.json +++ b/.devcontainer/nvhpc25.7/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "rapidsai/devcontainers:25.10-cpp-nvhpc25.7", + "image": "rapidsai/devcontainers:26.02-cpp-nvhpc25.7", "hostRequirements": { "gpu": "optional" }, @@ -16,18 +16,14 @@ "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", "NVCC_APPEND_FLAGS": "-t=100", - "SCCACHE_DIST_CONNECT_TIMEOUT": "${localEnv:SCCACHE_DIST_CONNECT_TIMEOUT:30}", - "SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE": "${localEnv:SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE:true}", - "SCCACHE_DIST_KEEPALIVE_ENABLED": "${localEnv:SCCACHE_DIST_KEEPALIVE_ENABLED:true}", - "SCCACHE_DIST_KEEPALIVE_INTERVAL": "${localEnv:SCCACHE_DIST_KEEPALIVE_INTERVAL:20}", - "SCCACHE_DIST_KEEPALIVE_TIMEOUT": "${localEnv:SCCACHE_DIST_KEEPALIVE_TIMEOUT:600}", "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", - "SCCACHE_DIST_REWRITE_INCLUDES_ONLY": "${localEnv:SCCACHE_DIST_REWRITE_INCLUDES_ONLY:false}", "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", - "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:7200}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", "SCCACHE_BUCKET": "rapids-sccache-devs", "SCCACHE_REGION": "us-east-2", "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", "SCCACHE_SERVER_PORT": "4225", "SCCACHE_SERVER_LOG": "sccache=debug" }, diff --git a/.devcontainer/nvhpc25.9/devcontainer.json b/.devcontainer/nvhpc25.9/devcontainer.json new file mode 100644 index 000000000..1441819bb --- /dev/null +++ b/.devcontainer/nvhpc25.9/devcontainer.json @@ -0,0 +1,72 @@ +{ + "image": "rapidsai/devcontainers:26.02-cpp-nvhpc25.9", + + "hostRequirements": { "gpu": "optional" }, + + "initializeCommand": ["/bin/bash", "-c", "mkdir -p .cache/.{aws,cache,config}"], + + "postCreateCommand": [ + "/bin/bash", + "-c", + "if test -z \"${DISABLE_SCCACHE:+x}\"; then echo \"export SCCACHE_DIST_URL='https://$(dpkg --print-architecture).$(uname -s | tr '[:upper:]' '[:lower:]').sccache.rapids.nvidia.com'\" >> /home/coder/.bashrc; fi" + ], + + "containerEnv": { + "AWS_ROLE_ARN": "arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs", + "DEVCONTAINER_UTILS_ENABLE_SCCACHE_DIST": "true", + "HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", + "NVCC_APPEND_FLAGS": "-t=100", + "SCCACHE_DIST_MAX_RETRIES": "${localEnv:SCCACHE_DIST_MAX_RETRIES:2}", + "SCCACHE_DIST_REQUEST_TIMEOUT": "${localEnv:SCCACHE_DIST_REQUEST_TIMEOUT:7140}", + "SCCACHE_IDLE_TIMEOUT": "${localEnv:SCCACHE_IDLE_TIMEOUT:0}", + "SCCACHE_BUCKET": "rapids-sccache-devs", + "SCCACHE_REGION": "us-east-2", + "SCCACHE_S3_KEY_PREFIX": "nvidia-stdexec-dev", + "SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE": "true", + "SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX": "nvidia-stdexec-dev/preprocessor", + "SCCACHE_SERVER_PORT": "4225", + "SCCACHE_SERVER_LOG": "sccache=debug" + }, + + "workspaceFolder": "/home/coder/stdexec", + "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/stdexec,type=bind,consistency=consistent", + "mounts": [ + "source=${localWorkspaceFolder}/.cache/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", + "source=${localWorkspaceFolder}/.cache/.config,target=/home/coder/.config,type=bind,consistency=consistent" + ], + + "customizations": { + "vscode": { + "extensions": [ + "augustocdias.tasks-shell-input", + "ericniebler.erics-build-output-colorizer" + ], + "settings": { + "debug.toolBarLocation": "docked", + "editor.hover.delay": 500, + "editor.hover.sticky": true, + "editor.inlayHints.enabled": "off", + "files.autoSave": "off", + "files.trimFinalNewlines": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "[c]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + }, + "[cuda-cpp]": { + "editor.tabSize": 2, + "editor.formatOnSave": false, + "editor.formatOnSaveMode": "file" + } + } + } + } +} diff --git a/.github/workflows/ci.cpu.yml b/.github/workflows/ci.cpu.yml index f445478ee..6a358a490 100644 --- a/.github/workflows/ci.cpu.yml +++ b/.github/workflows/ci.cpu.yml @@ -28,13 +28,7 @@ jobs: - { name: "CPU (gcc 12, Release, TSAN)", build: "Release", tag: gcc12-cuda12.9, cxxflags: "-fsanitize=thread" } container: options: -u root - image: rapidsai/devcontainers:25.10-cpp-${{ matrix.tag }} - env: - SCCACHE_BUCKET: "rapids-sccache-devs" - SCCACHE_REGION: "us-east-2" - SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev" - SCCACHE_SERVER_PORT: "4225" - SCCACHE_SERVER_LOG: "sccache=debug" + image: rapidsai/devcontainers:26.02-cpp-${{ matrix.tag }} permissions: id-token: write # This is required for configure-aws-credentials contents: read # This is required for actions/checkout @@ -52,20 +46,6 @@ jobs: run: | echo "ARTIFACT_PREFIX=${{runner.os}}-${{matrix.tag}}-amd64" >> "${GITHUB_ENV}" echo "ARTIFACT_SUFFIX=${{github.run_id}}-${{github.run_attempt}}-$RANDOM" >> "${GITHUB_ENV}" - - id: sccache-preprocessor-cache - name: Setup sccache preprocessor cache - uses: actions/cache@v4 - with: - path: /home/coder/.cache/sccache/preprocessor - restore-keys: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}} - key: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}} - - id: sccache-dist-toolchains-cache - name: Setup sccache-dist client toolchains cache - uses: actions/cache@v4 - with: - path: /home/coder/.cache/sccache-dist-client - restore-keys: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}} - key: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}} - if: github.repository_owner == 'NVIDIA' name: Get AWS credentials for sccache bucket uses: aws-actions/configure-aws-credentials@v4 @@ -75,17 +55,18 @@ jobs: role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-NVIDIA - name: Build and test CPU schedulers env: + ASAN_OPTIONS: alloc_dealloc_mismatch=0 NVCC_APPEND_FLAGS: "-t=100" - SCCACHE_DIST_URL: "https://amd64.linux.sccache.rapids.nvidia.com" - SCCACHE_DIST_CONNECT_TIMEOUT: "30" - SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: "true" - SCCACHE_DIST_KEEPALIVE_ENABLED: "true" - SCCACHE_DIST_KEEPALIVE_INTERVAL: "20" - SCCACHE_DIST_KEEPALIVE_TIMEOUT: "600" - SCCACHE_DIST_REWRITE_INCLUDES_ONLY: ${{ contains(matrix.tag, 'llvm') && 'true' || 'false' }} + SCCACHE_BUCKET: "rapids-sccache-devs" SCCACHE_DIST_REQUEST_TIMEOUT: "7140" - SCCACHE_IDLE_TIMEOUT: "7200" - ASAN_OPTIONS: alloc_dealloc_mismatch=0 + SCCACHE_DIST_URL: "https://amd64.linux.sccache.rapids.nvidia.com" + SCCACHE_IDLE_TIMEOUT: "0" + SCCACHE_REGION: "us-east-2" + SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev" + SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX: "nvidia-stdexec-dev/preprocessor" + SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE: "true" + SCCACHE_SERVER_LOG: "sccache=debug" + SCCACHE_SERVER_PORT: "4225" run: | set -ex; @@ -117,7 +98,8 @@ jobs: sccache -s; # Tests - ctest --test-dir build --verbose --output-on-failure --timeout 300; + SCCACHE_NO_CACHE=1 SCCACHE_NO_DIST_COMPILE=1 \ + ctest --test-dir build --verbose --output-on-failure --timeout 60; - if: ${{ !cancelled() }} name: Upload sccache logs uses: actions/upload-artifact@v4 diff --git a/.github/workflows/ci.gpu.yml b/.github/workflows/ci.gpu.yml index b3485a095..cf9c47f1b 100644 --- a/.github/workflows/ci.gpu.yml +++ b/.github/workflows/ci.gpu.yml @@ -20,21 +20,18 @@ jobs: fail-fast: false matrix: include: - - { name: "clang 20", cuda: "12.0", cxx: "clang++", build: "Release", tag: "llvm20-cuda12.0", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } - - { name: "clang 20", cuda: "12.9", cxx: "clang++", build: "Release", tag: "llvm20-cuda12.9", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } + - { name: "clang 21", cuda: "12.0", cxx: "clang++", build: "Release", tag: "llvm21-cuda12.0", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } + - { name: "clang 21", cuda: "12.9", cxx: "clang++", build: "Release", tag: "llvm21-cuda12.9", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } - { name: "nvc++ 25.7", cuda: "12.9", cxx: "mpic++", build: "Release", tag: "nvhpc25.7", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } - { name: "nvc++ 25.7", cuda: "12.9", cxx: "mpic++", build: "Debug", tag: "nvhpc25.7", gpu: "v100", sm: "70", driver: "latest", arch: "amd64" } + - { name: "nvc++ 25.9", cuda: "12.9", cxx: "mpic++", build: "Release", tag: "nvhpc25.9", gpu: "l4", sm: "75", driver: "latest", arch: "amd64" } + - { name: "nvc++ 25.9", cuda: "12.9", cxx: "mpic++", build: "Debug", tag: "nvhpc25.9", gpu: "l4", sm: "75", driver: "latest", arch: "amd64" } runs-on: linux-${{ matrix.arch }}-gpu-${{ matrix.gpu }}-${{ matrix.driver }}-1 container: options: -u root - image: rapidsai/devcontainers:25.10-cpp-${{ matrix.tag }} + image: rapidsai/devcontainers:26.02-cpp-${{ matrix.tag }} env: NVIDIA_VISIBLE_DEVICES: "${{ env.NVIDIA_VISIBLE_DEVICES }}" - SCCACHE_BUCKET: "rapids-sccache-devs" - SCCACHE_REGION: "us-east-2" - SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev" - SCCACHE_SERVER_PORT: "4225" - SCCACHE_SERVER_LOG: "sccache=debug" permissions: id-token: write # This is required for configure-aws-credentials contents: read # This is required for actions/checkout @@ -54,20 +51,6 @@ jobs: run: | echo "ARTIFACT_PREFIX=${{runner.os}}-cuda${{matrix.cuda}}-${{matrix.tag}}-${{matrix.arch}}" >> "${GITHUB_ENV}" echo "ARTIFACT_SUFFIX=${{github.run_id}}-${{github.run_attempt}}-$RANDOM" >> "${GITHUB_ENV}" - - id: sccache-preprocessor-cache - name: Setup sccache preprocessor cache - uses: actions/cache@v4 - with: - path: /home/coder/.cache/sccache/preprocessor - restore-keys: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}} - key: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}} - - id: sccache-dist-toolchains-cache - name: Setup sccache-dist client toolchains cache - uses: actions/cache@v4 - with: - path: /home/coder/.cache/sccache-dist-client - restore-keys: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}} - key: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}} - if: github.repository_owner == 'NVIDIA' name: Get AWS credentials for sccache bucket uses: aws-actions/configure-aws-credentials@v4 @@ -78,17 +61,16 @@ jobs: - name: Build and test GPU schedulers env: NVCC_APPEND_FLAGS: "-t=100" - SCCACHE_DIST_URL: "https://${{ matrix.arch }}.linux.sccache.rapids.nvidia.com" - SCCACHE_DIST_CONNECT_TIMEOUT: "30" - SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: "true" - SCCACHE_DIST_KEEPALIVE_ENABLED: "true" - SCCACHE_DIST_KEEPALIVE_INTERVAL: "20" - SCCACHE_DIST_KEEPALIVE_TIMEOUT: "600" - SCCACHE_DIST_REWRITE_INCLUDES_ONLY: ${{ matrix.cxx == 'clang++' && 'true' || 'false' }} + SCCACHE_BUCKET: "rapids-sccache-devs" SCCACHE_DIST_REQUEST_TIMEOUT: "7140" - SCCACHE_IDLE_TIMEOUT: "7200" - SCCACHE_NO_DIST_COMPILE: 1 - SCCACHE_NO_CACHE: 1 + SCCACHE_DIST_URL: "https://${{ matrix.arch }}.linux.sccache.rapids.nvidia.com" + SCCACHE_IDLE_TIMEOUT: "0" + SCCACHE_REGION: "us-east-2" + SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev" + SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX: "nvidia-stdexec-dev/preprocessor" + SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE: "true" + SCCACHE_SERVER_LOG: "sccache=debug" + SCCACHE_SERVER_PORT: "4225" run: | set -e; @@ -131,7 +113,8 @@ jobs: sccache -s; # Tests - ctest --test-dir build --verbose --output-on-failure --timeout 300; + SCCACHE_NO_CACHE=1 SCCACHE_NO_DIST_COMPILE=1 \ + ctest --test-dir build --verbose --output-on-failure --timeout 60; # Examples ./build/examples/nvexec/maxwell_cpu_st --iterations=1000 --N=512 --run-cpp --run-inline-scheduler; diff --git a/CMakeLists.txt b/CMakeLists.txt index 649e1f41d..4ba25a7db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,13 @@ if(POLICY CMP0141) set(CMAKE_POLICY_DEFAULT_CMP0141 NEW) endif() +if(POLICY CMP0167) + # Don't try to use old FindBoost.cmake + # https://cmake.org/cmake/help/latest/policy/CMP0167.html + cmake_policy(SET CMP0167 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0167 NEW) +endif() + ############################################################################## # - Download and initialize RAPIDS CMake helpers -----------------------------