You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

libnvrtc.cpp 1.9 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma GCC visibility push(default)
  2. #include <cstdio>
  3. #define LOGI(fmt, v...) fprintf(stdout, "info: " fmt "\n", ##v)
  4. #define LOGD(fmt, v...) fprintf(stdout, "debug: " fmt "\n", ##v)
  5. #include "./nvrtc_type.h"
  6. #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  7. static void log_failed_load(int func_idx);
  8. namespace {
  9. template <typename T>
  10. T on_init_failed(int func_idx);
  11. template <>
  12. nvrtcResult on_init_failed(int func_idx) {
  13. log_failed_load(func_idx);
  14. return NVRTC_ERROR_INTERNAL_ERROR;
  15. }
  16. template <>
  17. const char* on_init_failed(int func_idx) {
  18. log_failed_load(func_idx);
  19. return "load lib failed";
  20. }
  21. } // namespace
  22. #include "./libnvrtc-wrap.h"
  23. static const char* default_so_name =
  24. #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
  25. "nvrtc.dll";
  26. #elif defined(__APPLE__) || defined(__MACOSX)
  27. "libnvrtc.dylib";
  28. #else
  29. "libnvrtc.so";
  30. #endif
  31. static const char* default_so_paths[] = {
  32. #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
  33. "nvrtc.dll",
  34. #elif defined(__unix__) || defined(__QNX__) || defined(__APPLE__) || \
  35. defined(__MACOSX)
  36. #if defined(__APPLE__) || defined(__MACOSX)
  37. "/usr/local/cuda/lib/libnvrtc.dylib",
  38. #elif defined(__ANDROID__)
  39. #if defined(__aarch64__)
  40. "/system/vendor/lib64/libnvrtc.so",
  41. #elif defined(__arm__)
  42. "/system/vendor/lib/libnvrtc.so",
  43. #endif
  44. #else
  45. "libnvrtc.so",
  46. // In case some users does not have correct search path configured in
  47. // /etc/ld.so.conf
  48. "/usr/lib/x86_64-linux-gnu/libnvrtc.so",
  49. "/usr/local/nvidia/lib64/libnvrtc.so",
  50. "/usr/local/cuda/lib64/libnvrtc.so",
  51. #endif
  52. #else
  53. #error "Unknown platform"
  54. #endif
  55. };
  56. static const char* extra_so_paths[] = {};
  57. static const char* g_default_api_name = "nvrtc";
  58. #include "./dlopen_helper.h"