NVIDIA / NVIDIA/cuda-python

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

Ouverte
#605 7 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

CI/CD cuda.bindings cuda.core enhancement
Langage dominant
Cython
Étoiles
3.4k
Forks
329
Merge moyen
1 j 21 h
PR mergées (30 j)
113

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par comparer les configurations actuelles de pyproject.toml et setup.py pour cuda.bindings et cuda.core, puis lisez la discussion liée dans #46. Évaluez si les versions récentes de setuptools peuvent déclarer les extensions Cython ou si scikit-build-core et un CMakeLists.txt sont nécessaires, en tenant compte également des considérations futures concernant cudax:: dans #528. Le travail sera considéré comme terminé lorsque le projet aura convenu d’une orientation pour le backend de build et de son périmètre.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cmake, python
Domaine
build-system
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.