mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Fix Device Allocated IPC Events
- Given Device Allocated IPC Event Pool, the open IPC event pool process must allocate the event pool as a device buffer or usage of the memory will fail. - Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the child processes to allocate the correct memory type. Related-To: LOCI-3764 Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
7b8d1925a9
commit
1360ec9179
@@ -48,7 +48,7 @@ ze_result_t EventPoolImp::initialize(DriverHandle *driver, Context *context, uin
|
||||
|
||||
DriverHandleImp *driverHandleImp = static_cast<DriverHandleImp *>(driver);
|
||||
bool useDevicesFromApi = true;
|
||||
bool useDeviceAlloc = isEventPoolDeviceAllocationFlagSet();
|
||||
this->isDeviceEventPoolAllocation = isEventPoolDeviceAllocationFlagSet();
|
||||
|
||||
if (numDevices == 0) {
|
||||
currentNumDevices = static_cast<uint32_t>(driverHandleImp->devices.size());
|
||||
@@ -78,17 +78,17 @@ ze_result_t EventPoolImp::initialize(DriverHandle *driver, Context *context, uin
|
||||
|
||||
auto &hwInfo = getDevice()->getHwInfo();
|
||||
auto &l0GfxCoreHelper = getDevice()->getNEODevice()->getRootDeviceEnvironment().getHelper<L0GfxCoreHelper>();
|
||||
useDeviceAlloc |= l0GfxCoreHelper.alwaysAllocateEventInLocalMem();
|
||||
this->isDeviceEventPoolAllocation |= l0GfxCoreHelper.alwaysAllocateEventInLocalMem();
|
||||
|
||||
initializeSizeParameters(numDevices, phDevices, *driverHandleImp, hwInfo);
|
||||
|
||||
NEO::AllocationType allocationType = isEventPoolTimestampFlagSet() ? NEO::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER
|
||||
: NEO::AllocationType::BUFFER_HOST_MEMORY;
|
||||
if (this->devices.size() > 1) {
|
||||
useDeviceAlloc = false;
|
||||
this->isDeviceEventPoolAllocation = false;
|
||||
}
|
||||
|
||||
if (useDeviceAlloc) {
|
||||
if (this->isDeviceEventPoolAllocation) {
|
||||
allocationType = NEO::AllocationType::GPU_TIMESTAMP_DEVICE_BUFFER;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ ze_result_t EventPoolImp::initialize(DriverHandle *driver, Context *context, uin
|
||||
|
||||
bool allocatedMemory = false;
|
||||
|
||||
if (useDeviceAlloc) {
|
||||
if (this->isDeviceEventPoolAllocation) {
|
||||
NEO::AllocationProperties allocationProperties{*rootDeviceIndices.begin(), this->eventPoolSize, allocationType, devices[0]->getNEODevice()->getDeviceBitfield()};
|
||||
allocationProperties.alignment = eventAlignment;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user