diff options
author | Andrzej Janik <[email protected]> | 2024-12-10 15:29:48 +0000 |
---|---|---|
committer | Andrzej Janik <[email protected]> | 2024-12-10 15:29:48 +0000 |
commit | 22679fff82cddbff0bd1ba106b9f804ea765eb0a (patch) | |
tree | 5fdb6c1519256268ef1b72a83728fb72b813c78c /zluda_ml/src/impl.rs | |
parent | ed98dca26d9a7b455b346672f204e93e919d7e56 (diff) | |
download | ZLUDA-22679fff82cddbff0bd1ba106b9f804ea765eb0a.tar.gz ZLUDA-22679fff82cddbff0bd1ba106b9f804ea765eb0a.zip |
Implemet enough of nvml for geekbenchgeekbnch
Diffstat (limited to 'zluda_ml/src/impl.rs')
-rw-r--r-- | zluda_ml/src/impl.rs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/zluda_ml/src/impl.rs b/zluda_ml/src/impl.rs index 60e5e9d..818d711 100644 --- a/zluda_ml/src/impl.rs +++ b/zluda_ml/src/impl.rs @@ -1,4 +1,5 @@ -use cuda_types::nvml::nvmlReturn_t;
+use cuda_types::nvml::*;
+use std::{ffi::CStr, ptr};
#[cfg(debug_assertions)]
pub(crate) fn unimplemented() -> nvmlReturn_t {
@@ -10,8 +11,34 @@ pub(crate) fn unimplemented() -> nvmlReturn_t { nvmlReturn_t::NVML_ERROR_NOT_SUPPORTED
}
+#[allow(non_snake_case)]
pub(crate) fn nvmlErrorString(
_result: cuda_types::nvml::nvmlReturn_t,
) -> *const ::core::ffi::c_char {
c"".as_ptr()
}
+
+#[allow(non_snake_case)]
+pub(crate) fn nvmlInit_v2() -> cuda_types::nvml::nvmlReturn_t {
+ nvmlReturn_t::SUCCESS
+}
+
+const VERSION: &'static CStr = c"550.77";
+
+#[allow(non_snake_case)]
+pub(crate) fn nvmlSystemGetDriverVersion(
+ result: *mut ::core::ffi::c_char,
+ length: ::core::ffi::c_uint,
+) -> cuda_types::nvml::nvmlReturn_t {
+ if result == ptr::null_mut() {
+ return nvmlReturn_t::ERROR_INVALID_ARGUMENT;
+ }
+ let version = VERSION.to_bytes_with_nul();
+ let copy_length = usize::min(length as usize, version.len());
+ let slice = unsafe { std::slice::from_raw_parts_mut(result.cast(), copy_length) };
+ slice.copy_from_slice(&version[..copy_length]);
+ if let Some(null) = slice.last_mut() {
+ *null = 0;
+ }
+ nvmlReturn_t::SUCCESS
+}
|