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
|
/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/utilities/stackvec.h"
#include <cstdint>
#include <string>
namespace NEO {
struct DeviceInfo {
StackVec<size_t, 3> maxSubGroups;
double profilingTimerResolution;
uint64_t globalMemSize;
uint64_t localMemSize;
uint64_t maxMemAllocSize;
const char *ilVersion;
size_t image2DMaxHeight;
size_t image2DMaxWidth;
size_t image3DMaxDepth;
size_t imageMaxArraySize;
size_t imageMaxBufferSize;
size_t maxNumEUsPerSubSlice;
size_t maxParameterSize;
size_t maxWorkGroupSize;
size_t maxWorkItemSizes[3];
size_t outProfilingTimerResolution;
size_t printfBufferSize;
uint32_t addressBits;
uint32_t computeUnitsUsedForScratch;
uint32_t errorCorrectionSupport;
uint32_t globalMemCachelineSize;
uint32_t imageSupport;
uint32_t maxClockFrequency;
uint32_t maxFrontEndThreads;
uint32_t maxReadImageArgs;
uint32_t maxSamplers;
uint32_t maxWriteImageArgs;
uint32_t numThreadsPerEU;
StackVec<uint32_t, 6> threadsPerEUConfigs;
uint32_t vendorId;
uint32_t vmeAvcSupportsPreemption;
bool debuggerActive;
bool force32BitAddressess;
bool sharedSystemAllocationsSupport;
std::string name;
};
} // namespace NEO
|