MCPcopy Create free account
hub / github.com/evilsocket/cake / load

Method load

cake-core/src/backends/rocm/ffi.rs:65–109  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

63 /// Searches LD_LIBRARY_PATH, then default system paths.
64 #[allow(clippy::missing_transmute_annotations)]
65 pub fn load() -> std::result::Result<Self, String> {
66 unsafe {
67 let hip_lib = libloading::Library::new("libamdhip64.so")
68 .or_else(|_| libloading::Library::new("libamdhip64.so.5"))
69 .map_err(|e| format!("cannot load libamdhip64: {e}"))?;
70
71 let blas_lib = libloading::Library::new("librocblas.so")
72 .or_else(|_| libloading::Library::new("librocblas.so.0"))
73 .map_err(|e| format!("cannot load librocblas: {e}"))?;
74
75 macro_rules! sym {
76 ($lib:expr, $name:expr) => {{
77 let raw: libloading::Symbol<*const std::ffi::c_void> = $lib.get($name)
78 .map_err(|e| format!("symbol {}: {e}", String::from_utf8_lossy($name)))?;
79 std::mem::transmute(*raw)
80 }};
81 }
82
83 Ok(Self {
84 hip_init: sym!(hip_lib, b"hipInit\0"),
85 hip_get_device_count: sym!(hip_lib, b"hipGetDeviceCount\0"),
86 hip_set_device: sym!(hip_lib, b"hipSetDevice\0"),
87 hip_device_get_name: sym!(hip_lib, b"hipDeviceGetName\0"),
88 hip_malloc: sym!(hip_lib, b"hipMalloc\0"),
89 hip_free: sym!(hip_lib, b"hipFree\0"),
90 hip_host_malloc: sym!(hip_lib, b"hipHostMalloc\0"),
91 hip_host_free: sym!(hip_lib, b"hipHostFree\0"),
92 hip_memcpy: sym!(hip_lib, b"hipMemcpy\0"),
93 hip_mem_get_info: sym!(hip_lib, b"hipMemGetInfo\0"),
94 hip_device_synchronize: sym!(hip_lib, b"hipDeviceSynchronize\0"),
95 hip_stream_create: sym!(hip_lib, b"hipStreamCreate\0"),
96 hip_stream_synchronize: sym!(hip_lib, b"hipStreamSynchronize\0"),
97 hip_memcpy_async: sym!(hip_lib, b"hipMemcpyAsync\0"),
98
99 rocblas_create_handle: sym!(blas_lib, b"rocblas_create_handle\0"),
100 rocblas_destroy_handle: sym!(blas_lib, b"rocblas_destroy_handle\0"),
101 rocblas_set_stream: sym!(blas_lib, b"rocblas_set_stream\0"),
102 rocblas_sgemm: sym!(blas_lib, b"rocblas_sgemm\0"),
103 rocblas_sgemm_strided_batched: sym!(blas_lib, b"rocblas_sgemm_strided_batched\0"),
104
105 _hip_lib: hip_lib,
106 _blas_lib: blas_lib,
107 })
108 }
109 }
110}

Callers 8

convert_modelFunction · 0.45
convert_vocoderFunction · 0.45
mainFunction · 0.45
load_tensorMethod · 0.45
load_tensorMethod · 0.45
load_tensorMethod · 0.45
hip_sigabrt_handlerFunction · 0.45
hip_atexit_handlerFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected