Skip to content

Re-work on Linker dispatching logic #712

Open
@leofang

Description

@leofang

CUDA 12.0 is the first release where nvJitLink debuts. So far we have been operating under the assumption that nvJitLink is always available and can always generate a PTX (or CUBIN) that the driver can load. However, this assumption partially relies on another assumption that both nvJitLink and the driver are within the same major version 12.x.

By the time the next major release is out, there exists a possibility that the driver version (13.x) is newer than nvJitLink version (12.x). In this case, unless we need to link LTO IRs (which the driver cannot handle) we should prefer for the driver to handle the linking, instead of using nvJitLink. For linking LTO IRs, we must raise an exception.

We should also raise an exception if the user tries to link LTO IRs from different major versions. I believe it is not a supported use case. However, we currently do not have any introspection capability to check the LTO IR version.

Metadata

Metadata

Assignees

Labels

P0High priority - Must do!cuda.coreEverything related to the cuda.core moduleenhancementAny code-related improvements

Type

No type

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions