Changeset View
Changeset View
Standalone View
Standalone View
benchmark_script/info.py
| Show All 30 Lines | def to_dict(self) -> Dict[str, object]: | ||||
| else: | else: | ||||
| return {'name': self.name, 'type': self.type.value, 'is_display': self.is_display} | return {'name': self.name, 'type': self.type.value, 'is_display': self.is_display} | ||||
| @dc.dataclass | @dc.dataclass | ||||
| class ComputeDevice(Device): | class ComputeDevice(Device): | ||||
| cycles_device: Any | cycles_device: Any | ||||
| def _get_devices_filtered(type: str): | |||||
| for device in _cycles.available_devices(type): | |||||
| # Device is a non-strictly-typed typle. Element with index 1 is the type | |||||
| # of the device. | |||||
| if device[1] != type: | |||||
| continue | |||||
| yield device | |||||
| def _get_all_devices() -> List[Device]: | def _get_all_devices() -> List[Device]: | ||||
| return [ | all_devices = [] | ||||
| Device( | |||||
| for type in ('CPU', 'OPENCL', 'CUDA', 'OPTIX'): | |||||
| for name, *_ in _get_devices_filtered(type): | |||||
| all_devices.append(Device( | |||||
| name=name.replace(' (Display)', ''), | name=name.replace(' (Display)', ''), | ||||
| type=DeviceType(type), | type=DeviceType(type), | ||||
| is_display='(Display)' in name, | is_display='(Display)' in name, | ||||
| ) | ) | ||||
| for name, type, *_ in ( | |||||
| _cycles.available_devices('CPU') + | |||||
| _cycles.available_devices('OPENCL') + | |||||
| _cycles.available_devices('CUDA') + | |||||
| _cycles.available_devices('OPTIX') | |||||
| ) | ) | ||||
| ] | |||||
| return all_devices | |||||
| def _get_compute_devices() -> List[ComputeDevice]: | def _get_compute_devices() -> List[ComputeDevice]: | ||||
| return [ | return [ | ||||
| ComputeDevice( | ComputeDevice( | ||||
| name=d.name.replace(' (Display)', ''), | name=d.name.replace(' (Display)', ''), | ||||
| type=device_type, | type=device_type, | ||||
| is_display='(Display)' in d.name, | is_display='(Display)' in d.name, | ||||
| ▲ Show 20 Lines • Show All 80 Lines • Show Last 20 Lines | |||||