bypass code uses dlopen instead of RTLD_NEXT
bypass code uses dlopen instead of RTLD_NEXT

so much pain with library order and symbol resolving

apparently RTLD_NEXT only goes to the 'next' symbol given the position of the
code calling dlsym, and cannot iterate across definitions it finds. also,
RTLD_NEXT when used from a code which doesn't have a definition of the symbol
will just return the first symbol found. So you have to use RTLD_NEXT from
within a library which provides an implementation.

This fix just does a direct dlopen on libcudart.so and pulls in the symbols
directly (the cuda functions). If already opened, dlopen will just return the
handle to the library file.

alexandermerritt/slices,alexandermerritt/slices,alexandermerritt/slices