Open bavalpey opened 3 years ago
I've been digging into this and here's what I found.
cuGetProcAddress
was introduced in 11.3
The reason bellatrix libcuda.so
doesn't have it is because it's an older version (460). I suspect that's why interposing libcuda
crashes. I can update the driver here to get it working since capella (v465) does have cuGetProcAddress
. So there's nothing fancy going on behind the scenes [the _ptsz is a red herring].
However, cuGetProcAddress
returns an address of a function that the runtime can then call directly bypassing the interposer, so I don't want the runtime to use it since library interposition does not work for this.
My recommendation: Let's stick to 11.2 until we fully investigate the implications.
Interposition of cuGetProcAddress causes a segmentation fault when running programs. This could be due to uGetProcAddress being redefined to cuGetProcAddress_ptsz. A temporary fix works by commenting out the interposition for the function in libcuda_record.c. Perhaps this should be done during generation until the bug can be fixed.