aboutsummaryrefslogtreecommitdiffhomepage
path: root/zluda_ml/src/impl.rs
diff options
context:
space:
mode:
authorAndrzej Janik <[email protected]>2024-12-10 15:29:48 +0000
committerAndrzej Janik <[email protected]>2024-12-10 15:29:48 +0000
commit22679fff82cddbff0bd1ba106b9f804ea765eb0a (patch)
tree5fdb6c1519256268ef1b72a83728fb72b813c78c /zluda_ml/src/impl.rs
parented98dca26d9a7b455b346672f204e93e919d7e56 (diff)
downloadZLUDA-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.rs29
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
+}