Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v23.09.00 #1053

Merged
merged 33 commits into from
Sep 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1d62db3
Fix Wundefined-var-template clang warning (#992)
manopapad Jul 20, 2023
46862c4
improve random bitgenerator code coverage (#990)
yimoj Jul 20, 2023
5abc82e
Missing alignment on histogram call (#999)
manopapad Jul 21, 2023
388cd3e
Updating version for docs (#994)
ipdemes Jul 21, 2023
fa33ee5
pin cuda-version (#998) (#1002)
marcinz Jul 26, 2023
1883b71
Bump up cunumeric version and legate.core version (#1004)
marcinz Jul 27, 2023
c08bacf
Fix file name (#1008)
marcinz Jul 31, 2023
7d882df
src/cunumeric: add missing openmp variants to BitGenerator and Unique…
rohany Aug 1, 2023
89dd7a5
Improve fft code coverage (#1013)
yimoj Aug 2, 2023
04ff6d1
Histogram refactor (#1003)
aschaffer Aug 2, 2023
d54a3dd
Fix for control replication violation in test (#1005)
ipdemes Aug 2, 2023
f89dd2a
fix build instrutions link (#1014)
bryevdv Aug 2, 2023
e6a33ce
Various test fixes (#1015)
manopapad Aug 2, 2023
b31e999
Add back None as an accepted value for axis on some type sigs (#1017)
manopapad Aug 3, 2023
daf31c2
If a scalar ufunc arg is cn.ndarray use its type directly (#1011)
manopapad Aug 4, 2023
c41a47e
More RNG test fixes for MacOS (#1019)
manopapad Aug 4, 2023
67cd9f9
Update to the latest Legion (#1007)
marcinz Aug 9, 2023
e8abe21
Don't seed np.random in the tests, since the core will do it (#1020)
manopapad Aug 9, 2023
f2a87a7
GH docker based reusable CI workflows. (#993)
sandeepd-nv Aug 11, 2023
9017514
Skip the docstrings for functions pulled from cloned modules (#1024)
manopapad Aug 14, 2023
06cd534
Fix random test failures in CPU-only runs (#1025)
manopapad Aug 14, 2023
780fd40
Quantile Implementation (#664)
aschaffer Aug 14, 2023
821d1c2
ignore last-failed file (#1026)
bryevdv Aug 15, 2023
0060dc7
Updated versions.json SHA. (#1033)
sandeepd-nv Aug 29, 2023
a7afb95
Use `copy-pr-bot` (#1035)
ajschmidt8 Aug 29, 2023
2c13393
Update pre-commit mypy (#1037)
bryevdv Aug 31, 2023
8dddd18
enhance test_matrix_power.py/cholesky.py/norm.py (#1038)
XiaLuNV Sep 1, 2023
f014105
Don't cast histogram to int64 when density=True (#1042)
manopapad Sep 6, 2023
3a6ca9e
Explicitly cast result of shift binary operators (#1046)
manopapad Sep 21, 2023
892799f
Reject types that DeferredArray doesn't support (#1044)
manopapad Sep 21, 2023
b76a58a
Remove use of deprecated np.find_common_type (#1045)
manopapad Sep 22, 2023
0b11958
Add best practices info to sphinx docs (#1048)
bryevdv Sep 22, 2023
443f751
adding 23.09 version to docs (#1049)
ipdemes Sep 25, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
4 changes: 4 additions & 0 deletions .github/copy-pr-bot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Configuration file for `copy-pr-bot` GitHub App
# https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/

enabled: true
4 changes: 0 additions & 4 deletions .github/ops-bot.yaml

This file was deleted.

112 changes: 14 additions & 98 deletions .github/workflows/ci-gh.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Build cunumeric on GH
name: Build and test cunumeric on GH

concurrency:
group: ci-gpu-on-${{ github.event_name }}-from-${{ github.ref_name }}
group: ci-build-and-test-on-${{ github.event_name }}-from-${{ github.ref_name }}
cancel-in-progress: true

on:
Expand All @@ -11,99 +11,15 @@ on:
- "branch-*"

jobs:
build:
permissions:
id-token: write # This is required for configure-aws-credentials
contents: read # This is required for actions/checkout

# Ref: https://docs.rapids.ai/resources/github-actions/#cpu-labels for `linux-amd64-cpu4`
runs-on: ${{ github.repository == 'nv-legate/cunumeric' && 'linux-amd64-cpu4' || 'ubuntu-latest' }}
container:
options: -u root
image: rapidsai/devcontainers:23.06-cpp-cuda11.8-mambaforge-ubuntu22.04
volumes:
- ${{ github.workspace }}/out:/tmp/out
env:
DEFAULT_CONDA_ENV: legate
PYTHONDONTWRITEBYTECODE: 1
SCCACHE_REGION: us-east-2
SCCACHE_BUCKET: rapids-sccache-east
SCCACHE_S3_KEY_PREFIX: legate-cunumeric-dev
GH_TOKEN: "${{ secrets.PERSONAL_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}"
GITHUB_TOKEN: "${{ secrets.PERSONAL_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}"
VAULT_HOST: "${{ secrets.PERSONAL_ACCESS_TOKEN && 'https://vault.ops.k8s.rapids.ai' || '' }}"
VAULT_S3_TTL: "28800s" # 8 hours

steps:
- name: Checkout legate.core
uses: actions/checkout@v3
with:
repository: nv-legate/legate.core
fetch-depth: 0
path: legate

- name: Checkout cunumeric (= this repo)
uses: actions/checkout@v3
with:
fetch-depth: 0
path: cunumeric

- name: Setup
shell: bash -eo pipefail {0}
run: |
export LEGATE_SHA=$(cat cunumeric/cmake/versions.json | jq -r '.packages.legate_core.git_tag')
echo "Checking out LEGATE_SHA: ${LEGATE_SHA}"
git -C legate checkout $LEGATE_SHA

cp -ar legate/continuous_integration/home/coder/.gitconfig /home/coder/;
cp -ar legate/continuous_integration/home/coder/.local /home/coder/;
mv legate /home/coder/legate

cp -ar cunumeric/continuous_integration/home/coder/.local/bin/* /home/coder/.local/bin/;
mv cunumeric /home/coder/cunumeric;

chmod a+x /home/coder/.local/bin/*;
chown -R coder:coder /home/coder/;
chown -R coder:coder /tmp/out;

- if: github.repository == 'nv-legate/cunumeric'
name: Get AWS credentials for sccache bucket
uses: aws-actions/configure-aws-credentials@v2
with:
aws-region: us-east-2
role-duration-seconds: 28800 # 8 hours
role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-nv-legate

- name: Create conda env
shell: su coder {0}
run: cd ~/; exec entrypoint make-conda-env;

- name: Build legate.core C++ library
shell: su coder {0}
run: cd ~/; exec entrypoint build-legate-cpp;

- name: Build legate.core Python Wheel
shell: su coder {0}
run: cd ~/; exec entrypoint build-legate-wheel;

- name: Build legate.core Conda Package
shell: su coder {0}
run: cd ~/; exec entrypoint build-legate-conda;

- name: Build cunumeric C++ library
shell: su coder {0}
run: cd ~/; exec entrypoint build-cunumeric-cpp;

- name: Build cunumeric Python Wheel
shell: su coder {0}
run: cd ~/; exec entrypoint build-cunumeric-wheel;

- name: Build cunumeric Conda Package
shell: su coder {0}
run: cd ~/; exec entrypoint build-cunumeric-conda;

- name: Upload build output
uses: actions/upload-artifact@v3
with:
name: "cunumeric-${{ github.sha }}"
path: ./out/*
build-and-test:
strategy:
fail-fast: false
matrix:
include:
- {build-target: cpu}
- {build-target: gpu}
uses:
./.github/workflows/gh-build-and-test.yml
with:
build-target: ${{ matrix.build-target }}
sha: ${{ github.sha }}
32 changes: 32 additions & 0 deletions .github/workflows/gh-build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
on:
workflow_call:
inputs:
build-target:
required: true
type: string
sha:
required: true
type: string

jobs:
build:
name: "Build cunumeric (with ${{ inputs.build-target }} legate) on GH"
uses:
./.github/workflows/gh-build.yml
with:
build-target: ${{ inputs.build-target }}
# Ref: https://docs.rapids.ai/resources/github-actions/#cpu-labels for `linux-amd64-cpu4`
runs-on: ${{ github.repository_owner == 'nv-legate' && 'linux-amd64-cpu4' || 'ubuntu-latest' }}
sha: ${{ inputs.sha }}

cleanup:
needs:
- build

# This ensures the cleanup job runs even if previous jobs fail or the workflow is cancelled.
if: always()
uses:
./.github/workflows/gh-cleanup.yml
with:
build-target: ${{ inputs.build-target }}
sha: ${{ inputs.sha }}
123 changes: 123 additions & 0 deletions .github/workflows/gh-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Build cunumeric on GH

on:
workflow_call:
inputs:
build-target:
required: true
type: string
runs-on:
required: true
type: string
sha:
required: true
type: string

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_IMAGE: rapidsai/devcontainers:23.06-cpp-cuda11.8-mambaforge-ubuntu22.04
IMAGE_NAME_LEGATE: legate.core-${{ inputs.build-target }}
IMAGE_NAME_CUNUMERIC: cunumeric-${{ inputs.build-target }}
USE_CUDA: ${{ (inputs.build-target == 'cpu' && 'OFF') || 'ON' }}

jobs:
build:
name: build-${{ inputs.build-target }}-sub-workflow

permissions:
id-token: write # This is required for configure-aws-credentials
contents: read # This is required for actions/checkout
packages: write # This is required to push docker image to ghcr.io

runs-on: ${{ inputs.runs-on }}

steps:
- name: Checkout legate.core
uses: actions/checkout@v3
with:
repository: nv-legate/legate.core
fetch-depth: 0
path: legate

- name: Checkout cunumeric (= this repo)
uses: actions/checkout@v3
with:
fetch-depth: 0
path: cunumeric

- if: github.repository_owner == 'nv-legate'
name: Get AWS credentials for sccache bucket
uses: aws-actions/configure-aws-credentials@v2
with:
aws-region: us-east-2
role-duration-seconds: 28800 # 8 hours
role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-nv-legate

- name: Docker system prune
run: |
docker version
docker system prune --all --force

- name: Build legate.core using docker build
run: |
echo BUILD_TARGET: ${{ inputs.build-target }}
echo USE_CUDA: ${{ env.USE_CUDA }}

export LEGATE_SHA=$(cat cunumeric/cmake/versions.json | jq -r '.packages.legate_core.git_tag')
echo "Checking out LEGATE_SHA: ${LEGATE_SHA}"
git -C legate checkout $LEGATE_SHA

IMAGE_TAG_LEGATE=${{ env.IMAGE_NAME_LEGATE }}:${{ inputs.sha }}

chmod +x legate/continuous_integration/build-docker-image
legate/continuous_integration/build-docker-image \
--base-image "$BASE_IMAGE" \
--image-tag "$IMAGE_TAG_LEGATE" \
--source-dir legate

- name: Build cunumeric using docker build
run: |
IMAGE_TAG_CUNUMERIC=${{ env.IMAGE_NAME_CUNUMERIC }}:${{ inputs.sha }}
IMAGE_TAG_LEGATE=${{ env.IMAGE_NAME_LEGATE }}:${{ inputs.sha }}

legate/continuous_integration/build-docker-image \
--base-image "$IMAGE_TAG_LEGATE" \
--image-tag "$IMAGE_TAG_CUNUMERIC" \
--source-dir cunumeric

- name: Dump docker history of image before upload
run: |
IMAGE_TAG=${{ env.IMAGE_NAME_CUNUMERIC }}:${{ inputs.sha }}
docker history $IMAGE_TAG

- name: Log in to container image registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin

- name: Push cunumeric image
run: |
IMAGE_TAG=${{ env.IMAGE_NAME_CUNUMERIC }}:${{ inputs.sha }}

IMAGE_ID=ghcr.io/${{ github.repository_owner }}

# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')

IMAGE_ID=$IMAGE_ID/$IMAGE_TAG

docker tag $IMAGE_TAG $IMAGE_ID
docker push $IMAGE_ID

- name: Copy artifacts back to the host
run: |
IMAGE_TAG=${{ env.IMAGE_NAME_CUNUMERIC }}:${{ inputs.sha }}
mkdir -p artifacts
docker run -v "$(pwd)/artifacts:/home/coder/.artifacts" --rm -t $IMAGE_TAG copy-artifacts

- name: Display structure of workdir
run: ls -R

- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: "cunumeric-${{ inputs.build-target }}-${{ inputs.sha }}"
path: artifacts
43 changes: 43 additions & 0 deletions .github/workflows/gh-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Clean up

on:
workflow_call:
inputs:
build-target:
required: true
type: string
sha:
required: true
type: string

env:
IMAGE_NAME: cunumeric-${{ inputs.build-target }}

jobs:
cleanup:
permissions:
packages: write

runs-on: ubuntu-latest

steps:
- name: Delete docker image
run: |
set -xeuo pipefail

PACKAGE_NAME=${{ env.IMAGE_NAME }}
PACKAGE_VERSION_ID=$(
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ github.token }}"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/$PACKAGE_NAME/versions |
jq '.[] | select(.metadata.container.tags[] == "${{ inputs.sha }}") | .id' -
)

curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ github.token }}"\
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/${{ github.repository_owner }}/packages/container/$PACKAGE_NAME/versions/$PACKAGE_VERSION_ID
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,4 @@ cunumeric/install_info.py
/_skbuild
/_cmake_test_compile
.ipynb_checkpoints
.legate-test-last-failed
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v1.4.1'
rev: 'v1.5.1'
hooks:
- id: mypy
language: system
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ include(rapids-cuda)
include(rapids-export)
include(rapids-find)

set(cunumeric_version 23.07.00)
set(cunumeric_version 23.09.00)

# For now we want the optimization flags to match on both normal make and cmake
# builds so we override the cmake defaults here for release, this changes
Expand Down
4 changes: 2 additions & 2 deletions cmake/versions.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"packages" : {
"legate_core" : {
"version": "23.07.00",
"version": "23.09.00",
"git_url" : "https://github.com/nv-legate/legate.core.git",
"git_shallow": false,
"always_download": false,
"git_tag" : "ac75ac05a9056f49729797415ee489b45686a528"
"git_tag" : "14cca04834095553e4d88f503dc4cd35e4072212"
}
}
}
1 change: 1 addition & 0 deletions conda/conda-build/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ requirements:
{% else %}
- legate-core ={{ core_version }}
- cuda-cudart >={{ cuda_version }},<{{ cuda_major+1 }}
- cuda-version >={{ cuda_version }},<{{ cuda_major+1 }}
- cutensor >=1.3 =*_*
- libcublas
- libcusolver =11.4.1.48-0
Expand Down
Loading