mircuda 0.1.0

Native, explicit-stream Rust gateway to NVIDIA CUDA
pub(super) fn target_architecture(capability: (i32, i32)) -> String {
    if capability.0 == 12 {
        return "compute_120f".into();
    }
    format!("compute_{}{}", capability.0, capability.1)
}

#[cfg(test)]
mod tests {
    use super::target_architecture;

    #[test]
    fn targets_sm12_devices_as_a_feature_family() {
        assert_eq!(target_architecture((12, 0)), "compute_120f");
        assert_eq!(target_architecture((12, 1)), "compute_120f");
    }

    #[test]
    fn preserves_virtual_architecture_for_earlier_devices() {
        assert_eq!(target_architecture((8, 9)), "compute_89");
        assert_eq!(target_architecture((10, 0)), "compute_100");
    }
}