-
Notifications
You must be signed in to change notification settings - Fork 88
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/dev' into fix-packed-cas-bug
- Loading branch information
Showing
26 changed files
with
982 additions
and
180 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{ | ||
"shutdownAction": "stopContainer", | ||
"image": "rapidsai/devcontainers:23.08-cpp-gcc12-cuda12.2-ubuntu22.04", | ||
"hostRequirements": { | ||
"gpu": true | ||
}, | ||
"initializeCommand": [ | ||
"/bin/bash", | ||
"-c", | ||
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" | ||
], | ||
"containerEnv": { | ||
"SCCACHE_REGION": "us-east-2", | ||
"SCCACHE_BUCKET": "rapids-sccache-devs", | ||
"VAULT_HOST": "https://vault.ops.k8s.rapids.ai", | ||
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history", | ||
"DEVCONTAINER_NAME": "cuda12.2-gcc12" | ||
}, | ||
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", | ||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", | ||
"mounts": [ | ||
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", | ||
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", | ||
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" | ||
], | ||
"customizations": { | ||
"vscode": { | ||
"extensions": [ | ||
"llvm-vs-code-extensions.vscode-clangd" | ||
], | ||
"settings": { | ||
"clangd.arguments": [ | ||
"--compile-commands-dir=${workspaceFolder}/build/latest" | ||
] | ||
} | ||
} | ||
}, | ||
"name": "cuda12.2-gcc12" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
{ | ||
"shutdownAction": "stopContainer", | ||
"image": "rapidsai/devcontainers:23.08-cpp-gcc12-cuda12.2-ubuntu22.04", | ||
"hostRequirements": { | ||
"gpu": true | ||
}, | ||
"initializeCommand": [ | ||
"/bin/bash", | ||
"-c", | ||
"mkdir -m 0755 -p ${localWorkspaceFolder}/.{aws,cache,config}" | ||
], | ||
"containerEnv": { | ||
"SCCACHE_REGION": "us-east-2", | ||
"SCCACHE_BUCKET": "rapids-sccache-devs", | ||
"VAULT_HOST": "https://vault.ops.k8s.rapids.ai", | ||
"HISTFILE": "${containerWorkspaceFolder}/.cache/._bash_history" | ||
}, | ||
"workspaceFolder": "/home/coder/${localWorkspaceFolderBasename}", | ||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/${localWorkspaceFolderBasename},type=bind,consistency=consistent", | ||
"mounts": [ | ||
"source=${localWorkspaceFolder}/.aws,target=/home/coder/.aws,type=bind,consistency=consistent", | ||
"source=${localWorkspaceFolder}/.cache,target=/home/coder/.cache,type=bind,consistency=consistent", | ||
"source=${localWorkspaceFolder}/.config,target=/home/coder/.config,type=bind,consistency=consistent" | ||
], | ||
"customizations": { | ||
"vscode": { | ||
"extensions": [ | ||
"llvm-vs-code-extensions.vscode-clangd" | ||
], | ||
"settings": { | ||
"clangd.arguments": [ | ||
"--compile-commands-dir=${workspaceFolder}/build/latest" | ||
] | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#! /usr/bin/env bash | ||
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
launch_devcontainer() { | ||
|
||
# Ensure we're in the repo root | ||
cd "$( cd "$( dirname "$(realpath -m "${BASH_SOURCE[0]}")" )" && pwd )/.."; | ||
|
||
if [[ -z $1 ]] || [[ -z $2 ]]; then | ||
echo "Usage: $0 [CUDA version] [Host compiler]" | ||
echo "Example: $0 12.1 gcc12" | ||
return 1 | ||
fi | ||
|
||
local cuda_version="$1" | ||
local host_compiler="$2" | ||
local workspace="$(basename "$(pwd)")"; | ||
local tmpdir="$(mktemp -d)/${workspace}"; | ||
local path="$(pwd)/.devcontainer/cuda${cuda_version}-${host_compiler}"; | ||
|
||
mkdir -p "${tmpdir}"; | ||
mkdir -p "${tmpdir}/.devcontainer"; | ||
cp -arL "$path/devcontainer.json" "${tmpdir}/.devcontainer"; | ||
sed -i "s@\${localWorkspaceFolder}@$(pwd)@g" "${tmpdir}/.devcontainer/devcontainer.json"; | ||
path="${tmpdir}"; | ||
|
||
local hash="$(echo -n "${path}" | xxd -pu - | tr -d '[:space:]')"; | ||
local url="vscode://vscode-remote/dev-container+${hash}/home/coder/cuCollections"; | ||
|
||
echo "devcontainer URL: ${url}"; | ||
|
||
local launch=""; | ||
if type open >/dev/null 2>&1; then | ||
launch="open"; | ||
elif type xdg-open >/dev/null 2>&1; then | ||
launch="xdg-open"; | ||
fi | ||
|
||
if [ -n "${launch}" ]; then | ||
code --new-window "${tmpdir}"; | ||
exec "${launch}" "${url}" >/dev/null 2>&1; | ||
fi | ||
} | ||
|
||
launch_devcontainer "$@"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/bin/bash | ||
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# This script parses the CI matrix.yaml file and generates a devcontainer.json file for each unique combination of | ||
# CUDA version, compiler name/version, and Ubuntu version. The devcontainer.json files are written to the | ||
# .devcontainer directory to a subdirectory named after the CUDA version and compiler name/version. | ||
# GitHub docs on using multiple devcontainer.json files: | ||
# https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#devcontainerjson | ||
|
||
# Ensure the script is being executed in its containing directory | ||
cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; | ||
|
||
# The root devcontainer.json file is used as a template for all other devcontainer.json files | ||
# by replacing the `image:` field with the appropriate image name | ||
base_devcontainer_file="./devcontainer.json" | ||
|
||
|
||
# Read matrix.yaml and convert it to json | ||
matrix_json=$(yq -o json ../ci/matrix.yml) | ||
|
||
|
||
# Get the devcontainer image version and define image tag root | ||
DEVCONTAINER_VERSION=$(echo "$matrix_json" | jq -r '.devcontainer_version') | ||
IMAGE_ROOT="rapidsai/devcontainers:${DEVCONTAINER_VERSION}-cpp-" | ||
|
||
# Get unique combinations of cuda version, compiler name/version, and Ubuntu version | ||
combinations=$(echo "$matrix_json" | jq -c '[.pull_request.nvcc[] | {cuda: .cuda, compiler_name: .compiler.name, compiler_version: .compiler.version, os: .os}] | unique | .[]') | ||
|
||
# For each unique combination | ||
for combination in $combinations; do | ||
cuda_version=$(echo "$combination" | jq -r '.cuda') | ||
compiler_name=$(echo "$combination" | jq -r '.compiler_name') | ||
compiler_version=$(echo "$combination" | jq -r '.compiler_version') | ||
os=$(echo "$combination" | jq -r '.os') | ||
|
||
name="cuda$cuda_version-$compiler_name$compiler_version" | ||
mkdir -p "$name" | ||
devcontainer_file="$name/devcontainer.json" | ||
image="$IMAGE_ROOT$compiler_name$compiler_version-cuda$cuda_version-$os" | ||
|
||
# Use the base_devcontainer.json as a template, plug in the CUDA, compiler names, versions, and Ubuntu version, | ||
# and write the output to the new devcontainer.json file | ||
#jq --arg image "$image" --arg name "$name" '. + {image: $image, name: $name}' $base_devcontainer_file > "$devcontainer_file" | ||
jq --arg image "$image" --arg name "$name" '.image = $image | .name = $name | .containerEnv.DEVCONTAINER_NAME = $name' $base_devcontainer_file > "$devcontainer_file" | ||
|
||
echo "Created $devcontainer_file" | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: Compute Matrix | ||
description: "Compute the matrix for a given matrix type from the specified matrix file" | ||
|
||
inputs: | ||
matrix_query: | ||
description: "The jq query used to specify the desired matrix. e.g., .pull_request.nvcc" | ||
required: true | ||
matrix_file: | ||
description: 'The file containing the matrix' | ||
required: true | ||
outputs: | ||
matrix: | ||
description: 'The requested matrix' | ||
value: ${{ steps.compute-matrix.outputs.MATRIX }} | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Compute matrix | ||
id: compute-matrix | ||
run: | | ||
MATRIX=$(./.github/actions/compute-matrix/compute-matrix.sh ${{inputs.matrix_file}} ${{inputs.matrix_query}} ) | ||
echo "matrix=$MATRIX" | tee -a $GITHUB_OUTPUT | ||
shell: bash -euxo pipefail {0} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#!/bin/bash | ||
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
set -euo pipefail | ||
|
||
# Check for the correct number of arguments | ||
if [ $# -ne 2 ]; then | ||
echo "Usage: $0 MATRIX_FILE MATRIX_QUERY" | ||
echo "MATRIX_FILE: The path to the matrix file." | ||
echo "MATRIX_QUERY: The jq query used to specify the desired matrix. e.g., '.pull-request.nvcc'" | ||
exit 1 | ||
fi | ||
|
||
# Get realpath before changing directory | ||
MATRIX_FILE=$(realpath "$1") | ||
MATRIX_QUERY="$2" | ||
|
||
# Ensure the script is being executed in its containing directory | ||
cd "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; | ||
|
||
echo "Input matrix file:" >&2 | ||
cat "$MATRIX_FILE" >&2 | ||
echo "Query: $MATRIX_QUERY" >&2 | ||
echo $(yq -o=json "$MATRIX_FILE" | jq -c -r "$MATRIX_QUERY | map(. as \$o | {std: .std[]} + del(\$o.std))") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# SPDX-FileCopyrightText: Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
name: Set up AWS credentials and environment variables for sccache | ||
description: "Set up AWS credentials and environment variables for sccache" | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Get AWS credentials for sccache bucket | ||
uses: aws-actions/configure-aws-credentials@v2 | ||
with: | ||
role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-NVIDIA | ||
aws-region: us-east-2 | ||
role-duration-seconds: 43200 # 12 hours | ||
- name: Set environment variables | ||
run: | | ||
echo "SCCACHE_BUCKET=rapids-sccache-east" >> $GITHUB_ENV | ||
echo "SCCACHE_REGION=us-east-2" >> $GITHUB_ENV | ||
echo "SCCACHE_IDLE_TIMEOUT=32768" >> $GITHUB_ENV | ||
echo "SCCACHE_S3_USE_SSL=true" >> $GITHUB_ENV | ||
echo "SCCACHE_S3_NO_CREDENTIALS=false" >> $GITHUB_ENV | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.