[BUG]: Compiling PTX with undefined extern succeeds and produces empty kernel
Personne n'a encore pris cette issue.
- Langage dominant
- Cython
- Étoiles
- 3.4k
- Forks
- 329
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 116
Description
Is this a duplicate?
- I confirmed there appear to be no duplicate issues for this bug and that I agree to the Code of Conduct
Type of Bug
Silent Failure
Component
cuda.core
Describe the bug
Attempting to compile PTX with an undefined extern function seems to succeed and produce a cubin with an empty kernel. I am doing this like:
from cuda.core.experimental import Program, ProgramOptions
options = ProgramOptions(arch="sm_75")
program = Program(code, code_type="ptx", options=options)
cubin = program.compile("cubin")
The same PTX compiled with ptxas results in a failure to compile:
$ ptxas -arch sm_75 add_float16.ptx
ptxas fatal : Unresolved extern function '_ZplRK6__halfS1__1'
Am I using the Program.compile() interface incorrectly?
How to Reproduce
Run the attached file:
python cudapy.py
This will produce a cubin with an empty kernel, and show ptxas raises an error for the same PTX.
Expected behavior
An exception or some other error raised by Program.compile()
Operating System
Ubuntu Linux
nvidia-smi output
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le cudapy.py joint et le point d’entrée cuda.core.experimental Program.compile("cubin"), puis comparez son comportement avec celui de ptxas sur le même PTX. Suivez la manière dont les fonctions externes non définies sont traitées lors de la compilation. Le travail est terminé lorsque Program.compile() lève une erreur ou signale d’une autre manière la fonction externe non résolue, au lieu de produire un cubin vide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100