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

Add support for libnvfatbin APIs #681

Open
eyalroz opened this issue Sep 21, 2024 · 1 comment
Open

Add support for libnvfatbin APIs #681

eyalroz opened this issue Sep 21, 2024 · 1 comment

Comments

@eyalroz
Copy link
Owner

eyalroz commented Sep 21, 2024

With CUDA 12.4, NVIDIA introduced a new library for writing fatbin files. We need to figure out how to support this (functions on other classes, separate-mostly library etc.) and then implement.

APIs function:

const char * nvFatbinGetErrorString(nvFatbinResult result);
nvFatbinResult nvFatbinAddCubin(nvFatbinHandle handle, const void *code, size_t size, const char *arch, const char *identifier);
nvFatbinResult nvFatbinAddIndex(nvFatbinHandle handle, const void *code, size_t size, const char *identifier);
nvFatbinResult nvFatbinAddLTOIR(nvFatbinHandle handle, const void *code, size_t size, const char *arch, const char *identifier, const char *optionsCmdLine);
nvFatbinResult nvFatbinAddPTX(nvFatbinHandle handle, const char *code, size_t size, const char *arch, const char *identifier, const char *optionsCmdLine);
nvFatbinResult nvFatbinAddReloc(nvFatbinHandle handle, const void *code, size_t size);
nvFatbinResult nvFatbinCreate(nvFatbinHandle *handle_indirect, const char **options, size_t optionsCount);
nvFatbinResult nvFatbinDestroy(nvFatbinHandle *handle_indirect);
nvFatbinResult nvFatbinGet(nvFatbinHandle handle, void *buffer);
nvFatbinResult nvFatbinSize(nvFatbinHandle handle, size_t *size);
nvFatbinResult nvFatbinVersion(unsigned int *major, unsigned int *minor);
@eyalroz eyalroz added the task label Sep 21, 2024
@eyalroz eyalroz added this to the Full CUDA 12.4 support milestone Sep 21, 2024
eyalroz added a commit that referenced this issue Sep 21, 2024
* Refactored the option marshalling code, generalizing it somewhat to be usable for any aspect of CUDA which needs marshalled options
* Specifically, we now have `cuda::marshalling::marshal()` and `cuda::marshalling::render()` functions which take options of some arbitrary type, and we use a partial specialization gadget where the options are actually defined, to process/parse them
eyalroz added a commit that referenced this issue Sep 21, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 22, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…in and bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Sep 23, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
@eyalroz
Copy link
Owner Author

eyalroz commented Sep 23, 2024

Done.

eyalroz added a commit that referenced this issue Oct 26, 2024
* Refactored the option marshalling code, generalizing it somewhat to be usable for any aspect of CUDA which needs marshalled options
* Specifically, we now have `cuda::marshalling::marshal()` and `cuda::marshalling::render()` functions which take options of some arbitrary type, and we use a partial specialization gadget where the options are actually defined, to process/parse them
eyalroz added a commit that referenced this issue Oct 26, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
eyalroz added a commit that referenced this issue Dec 5, 2024
…d bumped version to 0.8.0; but...

* not tested it yet
* need to add the nvFatbin documentation example program, rewritten to use the APIs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant