Skip to content

Instantly share code, notes, and snippets.

@remexre
Created September 20, 2016 00:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save remexre/45eb6fa95918917be0b7cb0e4244b6d2 to your computer and use it in GitHub Desktop.
Save remexre/45eb6fa95918917be0b7cb0e4244b6d2 to your computer and use it in GitHub Desktop.
extern crate ocl;
extern crate raw_cpuid;
extern crate serde;
extern crate serde_json;
include!(concat!(env!("OUT_DIR"), "/serde_types.rs"));
fn main() {
let cpu_vendor_name = format!("{}", raw_cpuid::CpuId::new().get_vendor_info().unwrap());
let plats = ocl::Platform::list();
let plat_names = plats.iter()
.map(ocl::Platform::name)
.collect();
let dev_names = plats.iter()
.flat_map(ocl::Device::list_all)
.map(|d| d.name())
.collect();
let sys = System {
cpu_vend: cpu_vendor_name,
ocl_plats: plat_names,
ocl_devs: dev_names,
};
println!("{}", serde_json::to_string(&sys).unwrap());
}
#[derive(Serialize, Deserialize, Debug)]
struct System {
cpu_vend: String,
ocl_plats: Vec<String>,
ocl_devs: Vec<String>,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment