diff --git a/.devcontainer/cuda12.9-conda/devcontainer.json b/.devcontainer/cuda12.9-conda/devcontainer.json index 80248e8d..0c05492f 100644 --- a/.devcontainer/cuda12.9-conda/devcontainer.json +++ b/.devcontainer/cuda12.9-conda/devcontainer.json @@ -50,6 +50,8 @@ "workspaceFolder": "/home/coder", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent", "mounts": [ + "source=/etc/timezone,target=/etc/timezone,type=bind,consistency=consistent", + "source=/etc/localtime,target=/etc/localtime,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../rmm,target=/home/coder/rmm,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../dask-cuda,target=/home/coder/dask-cuda,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../kvikio,target=/home/coder/kvikio,type=bind,consistency=consistent", diff --git a/.devcontainer/cuda12.9-pip/devcontainer.json b/.devcontainer/cuda12.9-pip/devcontainer.json index 542722fa..8b8e00b1 100644 --- a/.devcontainer/cuda12.9-pip/devcontainer.json +++ b/.devcontainer/cuda12.9-pip/devcontainer.json @@ -38,6 +38,8 @@ "workspaceFolder": "/home/coder", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent", "mounts": [ + "source=/etc/timezone,target=/etc/timezone,type=bind,consistency=consistent", + "source=/etc/localtime,target=/etc/localtime,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../rmm,target=/home/coder/rmm,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../dask-cuda,target=/home/coder/dask-cuda,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../kvikio,target=/home/coder/kvikio,type=bind,consistency=consistent", diff --git a/.devcontainer/cuda13.0-conda/devcontainer.json b/.devcontainer/cuda13.0-conda/devcontainer.json index 2b6c06fd..3237e964 100644 --- a/.devcontainer/cuda13.0-conda/devcontainer.json +++ b/.devcontainer/cuda13.0-conda/devcontainer.json @@ -50,6 +50,8 @@ "workspaceFolder": "/home/coder", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent", "mounts": [ + "source=/etc/timezone,target=/etc/timezone,type=bind,consistency=consistent", + "source=/etc/localtime,target=/etc/localtime,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../rmm,target=/home/coder/rmm,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../dask-cuda,target=/home/coder/dask-cuda,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../kvikio,target=/home/coder/kvikio,type=bind,consistency=consistent", diff --git a/.devcontainer/cuda13.0-pip/devcontainer.json b/.devcontainer/cuda13.0-pip/devcontainer.json index 683785dd..4987bc5b 100644 --- a/.devcontainer/cuda13.0-pip/devcontainer.json +++ b/.devcontainer/cuda13.0-pip/devcontainer.json @@ -38,6 +38,8 @@ "workspaceFolder": "/home/coder", "workspaceMount": "source=${localWorkspaceFolder},target=/home/coder/devcontainers,type=bind,consistency=consistent", "mounts": [ + "source=/etc/timezone,target=/etc/timezone,type=bind,consistency=consistent", + "source=/etc/localtime,target=/etc/localtime,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../rmm,target=/home/coder/rmm,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../dask-cuda,target=/home/coder/dask-cuda,type=bind,consistency=consistent", "source=${localWorkspaceFolder}/../kvikio,target=/home/coder/kvikio,type=bind,consistency=consistent", diff --git a/.devcontainer/rapids.Dockerfile b/.devcontainer/rapids.Dockerfile index 161ff53b..a86b7ccc 100644 --- a/.devcontainer/rapids.Dockerfile +++ b/.devcontainer/rapids.Dockerfile @@ -54,6 +54,7 @@ ENV LIBCUDF_KERNEL_CACHE_PATH="/home/coder/cudf/cpp/build/${PYTHON_PACKAGE_MANAG ENV AWS_ROLE_ARN="arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs" ENV SCCACHE_REGION="us-east-2" ENV SCCACHE_BUCKET="rapids-sccache-devs" +ENV SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=true ENV SCCACHE_IDLE_TIMEOUT=0 ### diff --git a/features/src/utils/devcontainer-feature.json b/features/src/utils/devcontainer-feature.json index 86035053..d2c82ba7 100644 --- a/features/src/utils/devcontainer-feature.json +++ b/features/src/utils/devcontainer-feature.json @@ -1,7 +1,7 @@ { "name": "devcontainer-utils", "id": "utils", - "version": "25.12.0", + "version": "25.12.1", "description": "A feature to install RAPIDS devcontainer utility scripts", "containerEnv": { "BASH_ENV": "/etc/bash.bash_env" diff --git a/features/src/utils/opt/devcontainer/bin/sccache/dist/status.sh b/features/src/utils/opt/devcontainer/bin/sccache/dist/status.sh index 050a78f0..244d8b5e 100755 --- a/features/src/utils/opt/devcontainer/bin/sccache/dist/status.sh +++ b/features/src/utils/opt/devcontainer/bin/sccache/dist/status.sh @@ -7,13 +7,17 @@ # # Boolean options: # -h,--help Print this text. +# --no-procs Don't print the number of sccache processes +# --no-stats Don't print the sccache stats +# --no-temps Don't print the number of sccache tempfiles # # Options that require values: # -c|--col-width Max column width in number of characters. # String columns wider than this will be truncated with "...". # (default: $COLUMNS) # -f|--format (csv|tsv|json) The `sccache --dist-status` output format. -# (default: "json") +# (default: "tsv") +# -w,--watch Watch status every seconds (or 1s if is unspecified). # _sccache_dist_status() { @@ -26,18 +30,41 @@ _sccache_dist_status() { # shellcheck disable=SC1091 . devcontainer-utils-debug-output 'devcontainer_utils_debug' 'sccache sccache-dist-status'; - f="${f:-${format:-json}}"; - c="${c:-${col_width:-${COLUMNS:-1000000000}}}"; + if test ${#w[@]} -gt 0 && ! test -n "${w:+x}"; then + w="1"; + fi - # Print current dist status to verify we're connected - sccache 2>/dev/null --dist-status \ - | { - # Passthrough if the format is json - if test "$f" = json; then - cat - <(echo) - else + if ! test -n "${__SKIP_WATCH:+x}" && test -n "${w:+x}"; then + __SKIP_WATCH=1 watch -n "$w" devcontainer-utils-sccache-dist-status "${@}"; + else - cat - | jq -r -f <(cat </dev/null | wc -l) " + echo " ($(du -ch /tmp/.sccache_temp/.tmp* 2>/dev/null | tail -n1 | cut -f1))" + + echo -n "nvcc internal tempfiles: " + echo -n "$(ls -All /tmp/.sccache_temp/nvcc/*/* 2>/dev/null | wc -l)" + echo " ($(du -ch /tmp/.sccache_temp/nvcc/* 2>/dev/null | tail -n1 | cut -f1))" + echo + fi + + # Print current dist status to verify we're connected + sccache 2>/dev/null --dist-status \ + | { + # Passthrough if the format is json + if test "$f" = json; then + cat - <(echo) + else + + cat - | jq -r -f <(cat < "20.04" ]]; then - cat - | sed 's/\"//g' | column -t -s, -R $(seq -s, 1 13) + ) + fi + } \ + | { + # Passthrough if the format is csv or json + # Otherwise, transform the csv into a tsv. + if test "$f" = tsv; then + if [[ "$(grep DISTRIB_RELEASE= /etc/lsb-release | cut -d= -f2)" > "20.04" ]]; then + cat - | sed 's/\"//g' | column -t -s, -R $(seq -s, 1 14) + else + cat - | sed 's/\"//g' | column -t -s, + fi + else + cat - + fi + } + + if ! test -n "${no_stats:+x}"; then + echo + if test "$f" = json; then + sccache --show-stats --stats-format json else - cat - | sed 's/\"//g' | column -t -s, + sccache --show-stats fi - else - cat - fi - } + fi } _sccache_dist_status "$@" <&0;