1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "level_zero/core/source/context/context.h"
#include "level_zero/core/source/driver/driver_handle_imp.h"
namespace L0 {
struct ContextImp : Context {
ContextImp(DriverHandle *driverHandle);
~ContextImp() override = default;
ze_result_t destroy() override;
ze_result_t getStatus() override;
DriverHandle *getDriverHandle() override;
ze_result_t allocHostMem(ze_host_mem_alloc_flags_t flags,
size_t size,
size_t alignment,
void **ptr) override;
ze_result_t allocDeviceMem(ze_device_handle_t hDevice,
ze_device_mem_alloc_flags_t flags,
size_t size,
size_t alignment, void **ptr) override;
ze_result_t allocSharedMem(ze_device_handle_t hDevice,
ze_device_mem_alloc_flags_t deviceFlags,
ze_host_mem_alloc_flags_t hostFlags,
size_t size,
size_t alignment,
void **ptr) override;
ze_result_t freeMem(const void *ptr) override;
ze_result_t makeMemoryResident(ze_device_handle_t hDevice,
void *ptr,
size_t size) override;
ze_result_t evictMemory(ze_device_handle_t hDevice,
void *ptr,
size_t size) override;
ze_result_t makeImageResident(ze_device_handle_t hDevice, ze_image_handle_t hImage) override;
ze_result_t evictImage(ze_device_handle_t hDevice, ze_image_handle_t hImage) override;
ze_result_t getMemAddressRange(const void *ptr,
void **pBase,
size_t *pSize) override;
ze_result_t closeIpcMemHandle(const void *ptr) override;
ze_result_t getIpcMemHandle(const void *ptr,
ze_ipc_mem_handle_t *pIpcHandle) override;
ze_result_t openIpcMemHandle(ze_device_handle_t hDevice,
ze_ipc_mem_handle_t handle,
ze_ipc_memory_flags_t flags,
void **ptr) override;
ze_result_t getMemAllocProperties(const void *ptr,
ze_memory_allocation_properties_t *pMemAllocProperties,
ze_device_handle_t *phDevice) override;
ze_result_t createModule(ze_device_handle_t hDevice,
const ze_module_desc_t *desc,
ze_module_handle_t *phModule,
ze_module_build_log_handle_t *phBuildLog) override;
ze_result_t createSampler(ze_device_handle_t hDevice,
const ze_sampler_desc_t *pDesc,
ze_sampler_handle_t *phSampler) override;
ze_result_t createCommandQueue(ze_device_handle_t hDevice,
const ze_command_queue_desc_t *desc,
ze_command_queue_handle_t *commandQueue) override;
ze_result_t createCommandList(ze_device_handle_t hDevice,
const ze_command_list_desc_t *desc,
ze_command_list_handle_t *commandList) override;
ze_result_t createCommandListImmediate(ze_device_handle_t hDevice,
const ze_command_queue_desc_t *desc,
ze_command_list_handle_t *commandList) override;
ze_result_t activateMetricGroups(zet_device_handle_t hDevice,
uint32_t count,
zet_metric_group_handle_t *phMetricGroups) override;
ze_result_t reserveVirtualMem(const void *pStart,
size_t size,
void **pptr) override;
ze_result_t freeVirtualMem(const void *ptr,
size_t size) override;
ze_result_t queryVirtualMemPageSize(ze_device_handle_t hDevice,
size_t size,
size_t *pagesize) override;
ze_result_t createPhysicalMem(ze_device_handle_t hDevice,
ze_physical_mem_desc_t *desc,
ze_physical_mem_handle_t *phPhysicalMemory) override;
ze_result_t destroyPhysicalMem(ze_physical_mem_handle_t hPhysicalMemory) override;
ze_result_t mapVirtualMem(const void *ptr,
size_t size,
ze_physical_mem_handle_t hPhysicalMemory,
size_t offset,
ze_memory_access_attribute_t access) override;
ze_result_t unMapVirtualMem(const void *ptr,
size_t size) override;
ze_result_t setVirtualMemAccessAttribute(const void *ptr,
size_t size,
ze_memory_access_attribute_t access) override;
ze_result_t getVirtualMemAccessAttribute(const void *ptr,
size_t size,
ze_memory_access_attribute_t *access,
size_t *outSize) override;
ze_result_t openEventPoolIpcHandle(ze_ipc_event_pool_handle_t hIpc,
ze_event_pool_handle_t *phEventPool) override;
ze_result_t createEventPool(const ze_event_pool_desc_t *desc,
uint32_t numDevices,
ze_device_handle_t *phDevices,
ze_event_pool_handle_t *phEventPool) override;
ze_result_t createImage(ze_device_handle_t hDevice,
const ze_image_desc_t *desc,
ze_image_handle_t *phImage) override;
protected:
DriverHandle *driverHandle = nullptr;
};
} // namespace L0
|