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

[FEA]: Expand matrix.yaml definition to add support for additional kinds of jobs #239

Closed
2 of 4 tasks
Tracked by #141 ...
jrhemstad opened this issue Jul 18, 2023 · 1 comment
Closed
2 of 4 tasks
Tracked by #141 ...
Assignees

Comments

@jrhemstad
Copy link
Collaborator

jrhemstad commented Jul 18, 2023

Is this a duplicate?

Area

Infrastructure

Is your feature request related to a problem? Please describe.

As a CCCL maintainer, I would like to be able to test CCCL across a wide variety of use cases.

Currently, the matrix.yaml is the source of truth for all the environments that are tested in our CI.

Currently, this matrix is defined in such a way that it assumes you are always using nvcc + host compiler to do compilation of CUDA C++/C++ code.

However, there are a variety of additional use cases that don't fit this pattern. For example:

  • Testing with NVRTC where we only compile device code and don't need nvcc or a host compiler
  • Compiling host-only TUs for things like Thrust/libcu++ that are expected to work without nvcc
  • Compiling CUDA code with clang

Describe the solution you'd like

Extend the current matrix.yaml by nesting all of the current environments under a nvcc: field, and then add additional fields for the other kinds of jobs. For example:

pull-request:
  nvcc:
  - {cuda: '11.1', os: 'ubuntu18.04', cpu: 'amd64', compiler: {name: 'gcc', version: '6', exe: 'g++'}, gpu_build_archs: '70', std: [11, 14], jobs: ['build']}
  - {cuda: '11.1', os: 'ubuntu18.04', cpu: 'amd64', compiler: {name: 'gcc', version: '7', exe: 'g++'}, gpu_build_archs: '70', std: [11, 14, 17], jobs: ['build']}
  - {cuda: '11.1', os: 'ubuntu18.04', cpu: 'amd64', compiler: {name: 'gcc', version: '8', exe: 'g++'}, gpu_build_archs: '70', std: [11, 14, 17], jobs: ['build']}
  nvrtc: 
  - {cuda: '12.1', cpu: 'amd64', gpu_build_archs: '70', std: [11, 14, 17, 20], image_tag: 'cpp-gcc12-cuda12.1-ubuntu22.04'}
  clang-cuda:
  - {...}
  host-only:
  - {...}

Tasks

  1. jrhemstad
  2. 2 of 4
    infrastructure libcu++
    jrhemstad
@jrhemstad
Copy link
Collaborator Author

Closing this as complete as the matrix logic has been expanded to be more general. The remaining tasks are captured in their own issues: #344 #192

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

1 participant