21 return new MetalDevice(info, stats, profiler);
31 auto usable_devices = MetalInfo::get_usable_devices();
33 set<string> unique_ids;
35 for (id<MTLDevice> &device : usable_devices) {
37 string device_name = MetalInfo::get_device_name(device);
39 string id =
string(
"METAL_") + device_name;
42 if (unique_ids.find(
id) != unique_ids.end()) {
45 unique_ids.insert(
id);
52 info.
num = device_index;
66 auto allDevices = MTLCopyAllDevices();
68 if (num_devices == 0) {
69 return "No Metal devices found\n";
73 for (id<MTLDevice> device in allDevices) {
74 string device_name = MetalInfo::get_device_name(device);
DenoiserTypeMask denoisers
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN Device * device_metal_create(const DeviceInfo &info, Stats &stats, Profiler &profiler)
string device_metal_capabilities()
void device_metal_info(vector< DeviceInfo > &devices)
Vector< CPUDevice > devices
list of all CPUDevices. for every hardware thread an instance of CPUDevice is created
string string_remove_trademark(const string &s)
CCL_NAMESPACE_BEGIN string string_printf(const char *format,...)