Skip to content

Commit

Permalink
Merge remote-tracking branch 'NVIDIA/develop' into nvdisasm_search
Browse files Browse the repository at this point in the history
  • Loading branch information
gmarkall committed Aug 1, 2024
2 parents 7abcd36 + 2ecc60d commit 8efe772
Show file tree
Hide file tree
Showing 29 changed files with 2,703 additions and 126 deletions.
52 changes: 52 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[flake8]
ignore =
# Extra space in brackets
E20,
# Multiple spaces around ","
E231,E241,
# Comments
E26,
# Assigning lambda expression
E731,
# Ambiguous variable names
E741,
# line break before binary operator
W503,
# line break after binary operator
W504,
max-line-length = 80

exclude =
__pycache__
.git
*.pyc
*~
*.o
*.so
*.cpp
*.c
*.h

per-file-ignores =
# Slightly long line in the standard version file
numba_cuda/_version.py: E501
# "Unused" imports / potentially undefined names in init files
numba_cuda/numba/cuda/__init__.py:F401,F403,F405
numba_cuda/numba/cuda/simulator/__init__.py:F401,F403
numba_cuda/numba/cuda/simulator/cudadrv/__init__.py:F401
# Ignore star imports, unused imports, and "may be defined by star imports"
# errors in device_init because its purpose is to bring together a lot of
# the public API to be star-imported in numba.cuda.__init__
numba_cuda/numba/cuda/device_init.py:F401,F403,F405
# libdevice.py is an autogenerated file containing stubs for all the device
# functions. Some of the lines in docstrings are a little over-long, as they
# contain the URLs of the reference pages in the online libdevice
# documentation.
numba_cuda/numba/cuda/libdevice.py:E501
# Ignore too-long lines in the doc examples, prioritising readability
# in the docs over line length in the example source (especially given that
# the test code is already indented by 8 spaces)
numba_cuda/numba/cuda/tests/doc_examples/test_random.py:E501
numba_cuda/numba/cuda/tests/doc_examples/test_cg.py:E501
numba_cuda/numba/cuda/tests/doc_examples/test_matmul.py:E501
numba_cuda/numba/tests/doc_examples/test_interval_example.py:E501
59 changes: 0 additions & 59 deletions .github/workflows/build.yaml

This file was deleted.

125 changes: 125 additions & 0 deletions .github/workflows/conda-python-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
on:
workflow_call:
inputs:
build_type:
required: true
type: string
branch:
type: string
date:
type: string
sha:
type: string
repo:
type: string
node_type:
type: string
default: "cpu8"
script:
type: string
default: "ci/build_python.sh"
matrix_filter:
type: string
default: "."
upload_to_anaconda:
type: boolean
required: false

defaults:
run:
shell: bash

permissions:
actions: read
checks: none
contents: read
deployments: none
discussions: none
id-token: write
issues: none
packages: read
pages: none
pull-requests: read
repository-projects: none
security-events: none
statuses: none

jobs:
compute-matrix:
runs-on: ubuntu-latest
outputs:
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }}
steps:
- name: Compute Build Matrix
id: compute-matrix
run: |
set -eo pipefail
# please keep the matrices sorted in ascending order by the following:
#
# [ARCH, PY_VER, CUDA_VER, LINUX_VER]
#
export MATRIX="
# amd64
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
# arm64
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'ubuntu22.04' }
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04' }
"
MATRIX="$(
yq -n -o json 'env(MATRIX)' | \
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end'
)"
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
build:
needs: compute-matrix
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }}
runs-on: "linux-${{ matrix.ARCH }}-${{ inputs.node_type }}"
env:
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
container:
image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}
env:
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }}
steps:
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.sha }}
fetch-depth: 0
- name: Standardize repository information
run: |
echo "RAPIDS_REPOSITORY=${{ inputs.repo || github.repository }}" >> "${GITHUB_ENV}"
echo "RAPIDS_SHA=$(git rev-parse HEAD)" >> "${GITHUB_ENV}"
echo "RAPIDS_REF_NAME=${{ inputs.branch || github.ref_name }}" >> "${GITHUB_ENV}"
echo "RAPIDS_NIGHTLY_DATE=${{ inputs.date }}" >> "${GITHUB_ENV}"
- name: Python build
run: ${{ inputs.script }}
env:
GH_TOKEN: ${{ github.token }}
- name: Upload conda repo
if: "!cancelled()"
uses: actions/upload-artifact@v4
with:
name: conda-repo
path: "/tmp/conda-bld-output"
- name: Publish conda package
if: inputs.upload_to_anaconda
run: "ci/upload_conda.sh"
env:
CONDA_TOKEN: ${{ secrets.NVIDIA_CONDA_TOKEN }}
155 changes: 155 additions & 0 deletions .github/workflows/conda-python-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
on:
workflow_call:
inputs:
build_type:
required: true
type: string
branch:
type: string
date:
type: string
sha:
type: string
repo:
type: string
script:
type: string
default: "ci/test_python.sh"
run_codecov:
type: boolean
default: true
matrix_filter:
type: string
default: "."
container-options:
required: false
type: string
default: "-e _NOOP"

defaults:
run:
shell: bash

permissions:
actions: read
checks: none
contents: read
deployments: none
discussions: none
id-token: write
issues: none
packages: read
pages: none
pull-requests: read
repository-projects: none
security-events: none
statuses: none

jobs:
compute-matrix:
runs-on: ubuntu-latest
env:
BUILD_TYPE: ${{ inputs.build_type }}
outputs:
MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }}
steps:
- name: Validate Test Type
run: |
if [[ "$BUILD_TYPE" != "pull-request" ]] && [[ "$BUILD_TYPE" != "nightly" ]]; then
echo "Invalid build type! Must be 'nightly' or 'pull-request'."
exit 1
fi
- name: Compute Python Test Matrix
id: compute-matrix
run: |
set -eo pipefail
# please keep the matrices sorted in ascending order by the following:
#
# [ARCH, PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER]
#
export MATRICES="
pull-request:
# amd64
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
# arm64
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' }
nightly:
# amd64
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'earliest' }
- { ARCH: 'amd64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'v100', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'rockylinux8', GPU: 'v100', DRIVER: 'latest' }
- { ARCH: 'amd64', PY_VER: '3.11', CUDA_VER: '12.5.1', LINUX_VER: 'ubuntu22.04', GPU: 'v100', DRIVER: 'latest' }
# arm64
- { ARCH: 'arm64', PY_VER: '3.9', CUDA_VER: '11.4.3', LINUX_VER: 'ubuntu20.04', GPU: 'a100', DRIVER: 'latest' }
- { ARCH: 'arm64', PY_VER: '3.10', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' }
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '11.8.0', LINUX_VER: 'ubuntu22.04', GPU: 'a100', DRIVER: 'latest' }
- { ARCH: 'arm64', PY_VER: '3.11', CUDA_VER: '12.2.2', LINUX_VER: 'rockylinux8', GPU: 'a100', DRIVER: 'latest' }
"
TEST_MATRIX=$(yq -n 'env(MATRICES) | .[strenv(BUILD_TYPE)]')
export TEST_MATRIX
MATRIX="$(
yq -n -o json 'env(TEST_MATRIX)' | \
jq -c '${{ inputs.matrix_filter }} | if (. | length) > 0 then {include: .} else "Error: Empty matrix\n" | halt_error(1) end'
)"
echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
tests:
needs: compute-matrix
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.compute-matrix.outputs.MATRIX) }}
runs-on: "linux-${{ matrix.ARCH }}-gpu-${{ matrix.GPU }}-${{ matrix.DRIVER }}-1"
env:
RAPIDS_COVERAGE_DIR: ${{ github.workspace }}/coverage-results
RAPIDS_TESTS_DIR: ${{ github.workspace }}/test-results
RAPIDS_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
container:
image: rapidsai/ci-conda:cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}
options: ${{ inputs.container-options }}
env:
RAPIDS_BUILD_TYPE: ${{ inputs.build_type }}
NVIDIA_VISIBLE_DEVICES: ${{ env.NVIDIA_VISIBLE_DEVICES }}
steps:
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repo }}
ref: ${{ inputs.sha }}
fetch-depth: 0
- uses: actions/download-artifact@v4
name: conda-repo
- name: Display structure of downloaded files
run: ls -R
- name: Standardize repository information
run: |
echo "RAPIDS_REPOSITORY=${{ inputs.repo || github.repository }}" >> "${GITHUB_ENV}"
echo "RAPIDS_SHA=$(git rev-parse HEAD)" >> "${GITHUB_ENV}"
echo "RAPIDS_REF_NAME=${{ inputs.branch || github.ref_name }}" >> "${GITHUB_ENV}"
echo "RAPIDS_NIGHTLY_DATE=${{ inputs.date }}" >> "${GITHUB_ENV}"
- name: Python tests
run: ${{ inputs.script }}
env:
GH_TOKEN: ${{ github.token }}
- name: Generate test report
uses: test-summary/[email protected]
with:
paths: "${{ env.RAPIDS_TESTS_DIR }}/*.xml"
if: always()
- name: Run codecov
if: inputs.run_codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
codecovcli \
-v \
upload-process \
-C ${{ github.sha }} \
-s "${RAPIDS_COVERAGE_DIR}" \
--handle-no-reports-found
- name: Upload additional artifacts
if: "!cancelled()"
run: rapids-upload-artifacts-dir cuda${RAPIDS_CUDA_VERSION%%.*}_$(arch)_py${RAPIDS_PY_VERSION//.}
Loading

0 comments on commit 8efe772

Please sign in to comment.