add xlib.avecl

This commit is contained in:
iperov 2021-09-30 18:21:30 +04:00
commit 0058474da7
56 changed files with 5569 additions and 0 deletions

View file

@ -0,0 +1,44 @@
class DeviceInfo:
"""
Represents picklable OpenCL device info
"""
def __init__(self, index : int = None, name : str = None, total_memory : int = None, performance_level : int = None):
self._index = index
self._name = name
self._total_memory = total_memory
self._performance_level = performance_level
def __getstate__(self):
return self.__dict__.copy()
def __setstate__(self, d):
self.__init__()
self.__dict__.update(d)
def get_index(self) -> int:
return self._index
def get_name(self) -> str:
return self._name
def get_total_memory(self) -> int:
return self._total_memory
def get_performance_level(self) -> int:
return self._performance_level
def __eq__(self, other):
if self is not None and other is not None and isinstance(self, DeviceInfo) and isinstance(other, DeviceInfo):
return self._index == other._index
return False
def __hash__(self):
return self._index
def __str__(self):
return f"[{self._index}] {self._name} [{(self._total_memory / 1024**3) :.3}Gb]"
def __repr__(self):
return f'{self.__class__.__name__} object: ' + self.__str__()