def create_some_context(): platforms = Driver.get_platforms() for vendor in ["AMD Accelerated Parallel Processing"]: platform = next((pl for pl in platforms if pl.name == vendor), None) if platform is not None: break assert platform is not None device = platform.get_devices(type=Driver.device_type.GPU)[0] context = Driver.Context([device]) queue = Driver.CommandQueue(context, profiling=True) return context, queue
def reserve(self, numOfStreams): self.streams.extend([Driver.CommandQueue(context, profiling=True)] * numOfStreams)
def autoinit(): global context if context is not None: return def finishUp(): clearCaches() import atexit atexit.register(finishUp) platforms = Driver.get_platforms() if len(platforms) == 0: raise RuntimeError("No OpenCL enabled platform found") amd = "AMD Accelerated Parallel Processing" global platform for vendor in [amd]: platform = next((pl for pl in platforms if pl.name == vendor), None) if platform is not None: break if platform is None: platform = platforms[0] devices = platform.get_devices(type=Driver.device_type.GPU) if len(devices) == 0: raise RuntimeError("No OpenCL enabled devices found") if Config.deviceIdx >= len(devices): raise RuntimeError("Invalid OpenCL config device index") global device device = devices[Config.deviceIdx] context = Driver.Context([device]) global queue queue = Driver.CommandQueue(context, profiling=True) addinfo = " %sCU" % device.max_compute_units if platform.name == amd else "" print("[%s]: Using device #%s (%s%s)" % (Config.libname, Config.deviceIdx, device.name, addinfo)) if Config.systemLog: clVersion = device.version print("[%s]: Created OpenCL context (Using driver version: %s)" % (Config.libname, clVersion)) global memoryPool memoryPool = Driver.MemoryPool(context) global globalRng globalRng = Random.PhiloxGenerator(context, queue) if Config.systemLog: print("[%s]: Created global rng (%s)" % (Config.libname, globalRng.__class__.__name__)) global streamManager streamManager = StreamManager() global globalFills globalFills = GPUArrayFills()