Skip to main content

singe_cuda/
driver.rs

1use singe_cuda_sys::driver;
2
3use crate::{error::Result, try_ffi};
4
5/// Returns the version of CUDA supported by the driver.
6/// The version is returned as `1000 * major + 10 * minor`.
7/// For example, CUDA 9.2 would be represented by 9020.
8///
9/// # Errors
10///
11/// Returns an error if CUDA cannot query the driver version or if a previous asynchronous launch
12/// reported an error.
13pub fn version() -> Result<i32> {
14    let mut version: i32 = 0;
15    unsafe {
16        try_ffi!(driver::cuDriverGetVersion(&raw mut version))?;
17    }
18    Ok(version)
19}
20
21#[cfg(all(test, feature = "testing"))]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn it_works() {
27        assert_ne!(version().unwrap(), 0);
28    }
29}