NVIDIA / NVIDIA/cuda-python

Further modernization of the build backend to reduce `setup.py` usage

Abierto
#605 7 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

CI/CD cuda.bindings cuda.core enhancement
Lenguaje dominante
Cython
Estrellas
3.4k
Forks
329
Merge medio
1 d 23 h
PR fusionados (30 d)
116

Descripción

Creating an issue to capture the internal discussions.

Currently both cuda.bindings and cuda.core use setuptools as the build backend and have a mixture of pyproject.toml static declarations and setup.py dynamic logics. We have two choices here:

  • Keep setuptools but further reduce the amount of code in setup.py:
  • Switch to use scikit-build-core:
    • This has the benefit of reusing CUDA discovery mechanism (FindCUDAToolkit) and other nice build system features provided by CMake (see the relevant discussion in #46).
    • The potential downside is to maintain a custom CMakeLists.txt which is arguably a burden for non-C++ (=C & Python) oriented developers. Our Cython extensions are very simple to build.
      • However, this might become necessary once we start integrating some features from cudax::, e.g. #528.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza comparando las configuraciones actuales de pyproject.toml y setup.py para cuda.bindings y cuda.core; después, lee la discusión enlazada en #46. Evalúa si las versiones recientes de setuptools pueden declarar las extensiones de Cython o si se necesitan scikit-build-core y un CMakeLists.txt, incluidas las consideraciones futuras sobre cudax:: en #528. Se considerará terminado cuando el proyecto acuerde una dirección para el backend de compilación y su alcance.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cmake, python
Área
build-system
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.