Rename device access functions
Rename functions that access devices to reflect the derived device they return. This includes the base device::Device and the derived gpu/pal/roc device classes in both NullDevice and Device forms. Change to use the least derived versions to clarify what operations will be available. Change-Id: I1abb6bfed7efa24852bc8d0d49acaea357d8b5d0
This commit is contained in:
@@ -115,7 +115,7 @@ NullKernel* Program::createKernel(const std::string& name, const Kernel::InitDat
|
||||
|
||||
*created = false;
|
||||
// Create a GPU kernel
|
||||
Kernel* gpuKernel = new Kernel(name, static_cast<const gpu::Device&>(device()), *this, initData);
|
||||
Kernel* gpuKernel = new Kernel(name, gpuDevice(), *this, initData);
|
||||
|
||||
if (gpuKernel == NULL) {
|
||||
buildLog_ += "new Kernel() failed";
|
||||
@@ -512,7 +512,7 @@ bool NullProgram::linkImpl(const std::vector<device::Program*>& inputPrograms,
|
||||
} else {
|
||||
aclTypeUsed = aclLLVMIR;
|
||||
}
|
||||
err = aclInsertSection(dev().amdilCompiler(), libs[i], llvmBinaries[i]->data(),
|
||||
err = aclInsertSection(gpuNullDevice().amdilCompiler(), libs[i], llvmBinaries[i]->data(),
|
||||
llvmBinaries[i]->size(), aclTypeUsed);
|
||||
if (err != ACL_SUCCESS) {
|
||||
LogWarning("aclInsertSection failed");
|
||||
@@ -529,10 +529,10 @@ bool NullProgram::linkImpl(const std::vector<device::Program*>& inputPrograms,
|
||||
unsigned int numLibs = libs.size() - 1;
|
||||
|
||||
if (numLibs > 0) {
|
||||
err = aclLink(dev().amdilCompiler(), libs[0], numLibs, &libs[1], ACL_TYPE_LLVMIR_BINARY,
|
||||
err = aclLink(gpuNullDevice().amdilCompiler(), libs[0], numLibs, &libs[1], ACL_TYPE_LLVMIR_BINARY,
|
||||
"-create-library", NULL);
|
||||
|
||||
buildLog_ += aclGetCompilerLog(dev().amdilCompiler());
|
||||
buildLog_ += aclGetCompilerLog(gpuNullDevice().amdilCompiler());
|
||||
|
||||
if (err != ACL_SUCCESS) {
|
||||
LogWarning("aclLink failed");
|
||||
@@ -549,7 +549,7 @@ bool NullProgram::linkImpl(const std::vector<device::Program*>& inputPrograms,
|
||||
} else {
|
||||
aclTypeUsed = aclLLVMIR;
|
||||
}
|
||||
const void* llvmir = aclExtractSection(dev().amdilCompiler(), libs[0], &size, aclTypeUsed, &err);
|
||||
const void* llvmir = aclExtractSection(gpuNullDevice().amdilCompiler(), libs[0], &size, aclTypeUsed, &err);
|
||||
if (err != ACL_SUCCESS) {
|
||||
LogWarning("aclExtractSection failed");
|
||||
break;
|
||||
@@ -1456,13 +1456,13 @@ bool Program::allocGlobalData(const void* globalData, size_t dataSize, uint inde
|
||||
// so possible reallocation won't occur twice or
|
||||
// another thread could destroy a heap block,
|
||||
// while we didn't finish allocation
|
||||
amd::ScopedLock k(dev().lockAsyncOps());
|
||||
amd::ScopedLock k(gpuDevice().lockAsyncOps());
|
||||
|
||||
// Allocate memory for the global data store
|
||||
glbData_ = dev().createScratchBuffer(amd::alignUp(dataSize, 0x1000));
|
||||
glbData_ = gpuDevice().createScratchBuffer(amd::alignUp(dataSize, 0x1000));
|
||||
dataStore = glbData_;
|
||||
} else {
|
||||
dataStore = new Memory(dev(), amd::alignUp(dataSize, ConstBuffer::VectorSize));
|
||||
dataStore = new Memory(gpuDevice(), amd::alignUp(dataSize, ConstBuffer::VectorSize));
|
||||
|
||||
// Initialize constant buffer
|
||||
if ((dataStore == NULL) || !dataStore->create(Resource::RemoteUSWC)) {
|
||||
@@ -1478,7 +1478,7 @@ bool Program::allocGlobalData(const void* globalData, size_t dataSize, uint inde
|
||||
static const bool Entire = true;
|
||||
amd::Coord3D origin(0, 0, 0);
|
||||
amd::Coord3D region(dataSize);
|
||||
result = dev().xferMgr().writeBuffer(globalData, *dataStore, origin, region, Entire);
|
||||
result = gpuDevice().xferMgr().writeBuffer(globalData, *dataStore, origin, region, Entire);
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -1505,7 +1505,7 @@ HSAILProgram::HSAILProgram(Device& device, amd::Program& owner)
|
||||
maxScratchRegs_(0),
|
||||
executable_(NULL),
|
||||
loaderContext_(this) {
|
||||
machineTarget_ = dev().hwInfo()->targetName_;
|
||||
machineTarget_ = gpuNullDevice().hwInfo()->targetName_;
|
||||
loader_ = amd::hsa::loader::Loader::Create(&loaderContext_);
|
||||
}
|
||||
|
||||
@@ -1517,7 +1517,7 @@ HSAILProgram::HSAILProgram(NullDevice& device, amd::Program& owner)
|
||||
executable_(NULL),
|
||||
loaderContext_(this) {
|
||||
isNull_ = true;
|
||||
machineTarget_ = dev().hwInfo()->targetName_;
|
||||
machineTarget_ = gpuNullDevice().hwInfo()->targetName_;
|
||||
loader_ = amd::hsa::loader::Loader::Create(&loaderContext_);
|
||||
}
|
||||
|
||||
@@ -1578,9 +1578,9 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
// 1. if the program is created with binary and contains only hsail text
|
||||
case ACL_TYPE_HSAIL_TEXT: {
|
||||
std::string curOptions = options->origOptionStr + hsailOptions();
|
||||
errorCode = aclCompile(dev().hsaCompiler(), binaryElf_, curOptions.c_str(),
|
||||
errorCode = aclCompile(gpuNullDevice().hsaCompiler(), binaryElf_, curOptions.c_str(),
|
||||
continueCompileFrom, ACL_TYPE_CG, NULL);
|
||||
buildLog_ += aclGetCompilerLog(dev().hsaCompiler());
|
||||
buildLog_ += aclGetCompilerLog(gpuNullDevice().hsaCompiler());
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
buildLog_ += "Error: BRIG code generation failed.\n";
|
||||
return false;
|
||||
@@ -1602,12 +1602,12 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
std::string fin_options(options->origOptionStr + hsailOptions());
|
||||
// Append an option so that we can selectively enable a SCOption on CZ
|
||||
// whenever IOMMUv2 is enabled.
|
||||
if (dev().settings().svmFineGrainSystem_) {
|
||||
if (gpuNullDevice().settings().svmFineGrainSystem_) {
|
||||
fin_options.append(" -sc-xnack-iommu");
|
||||
}
|
||||
errorCode = aclCompile(dev().hsaCompiler(), binaryElf_, fin_options.c_str(), ACL_TYPE_CG,
|
||||
errorCode = aclCompile(gpuNullDevice().hsaCompiler(), binaryElf_, fin_options.c_str(), ACL_TYPE_CG,
|
||||
ACL_TYPE_ISA, NULL);
|
||||
buildLog_ += aclGetCompilerLog(dev().hsaCompiler());
|
||||
buildLog_ += aclGetCompilerLog(gpuNullDevice().hsaCompiler());
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
buildLog_ += "Error: BRIG finalization to ISA failed.\n";
|
||||
return false;
|
||||
@@ -1625,7 +1625,7 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
size_t size = 0;
|
||||
hsa_code_object_t code_object;
|
||||
code_object.handle = reinterpret_cast<uint64_t>(
|
||||
aclExtractSection(dev().hsaCompiler(), binaryElf_, &size, aclTEXT, &errorCode));
|
||||
aclExtractSection(gpuNullDevice().hsaCompiler(), binaryElf_, &size, aclTEXT, &errorCode));
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
buildLog_ += "Error: Extracting AMD HSA Code Object from binary failed.\n";
|
||||
return false;
|
||||
@@ -1638,14 +1638,14 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
}
|
||||
size_t kernelNamesSize = 0;
|
||||
errorCode =
|
||||
aclQueryInfo(dev().hsaCompiler(), binaryElf_, RT_KERNEL_NAMES, NULL, NULL, &kernelNamesSize);
|
||||
aclQueryInfo(gpuNullDevice().hsaCompiler(), binaryElf_, RT_KERNEL_NAMES, NULL, NULL, &kernelNamesSize);
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
buildLog_ += "Error: Querying of kernel names size from the binary failed.\n";
|
||||
return false;
|
||||
}
|
||||
if (kernelNamesSize > 0) {
|
||||
char* kernelNames = new char[kernelNamesSize];
|
||||
errorCode = aclQueryInfo(dev().hsaCompiler(), binaryElf_, RT_KERNEL_NAMES, NULL, kernelNames,
|
||||
errorCode = aclQueryInfo(gpuNullDevice().hsaCompiler(), binaryElf_, RT_KERNEL_NAMES, NULL, kernelNames,
|
||||
&kernelNamesSize);
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
buildLog_ += "Error: Querying of kernel names from the binary failed.\n";
|
||||
@@ -1661,7 +1661,7 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
for (const auto& it : vKernels) {
|
||||
std::string kernelName(it);
|
||||
std::string openclKernelName = Kernel::openclMangledName(kernelName);
|
||||
errorCode = aclQueryInfo(dev().hsaCompiler(), binaryElf_, RT_NUM_KERNEL_HIDDEN_ARGS,
|
||||
errorCode = aclQueryInfo(gpuNullDevice().hsaCompiler(), binaryElf_, RT_NUM_KERNEL_HIDDEN_ARGS,
|
||||
openclKernelName.c_str(), &md.numHiddenKernelArgs,
|
||||
&sizeOfnumHiddenKernelArgs);
|
||||
if (errorCode != ACL_SUCCESS) {
|
||||
@@ -1698,7 +1698,7 @@ bool HSAILProgram::linkImpl(amd::option::Options* options) {
|
||||
}
|
||||
// Save the binary in the interface class
|
||||
saveBinaryAndSetType(TYPE_EXECUTABLE);
|
||||
buildLog_ += aclGetCompilerLog(dev().hsaCompiler());
|
||||
buildLog_ += aclGetCompilerLog(gpuNullDevice().hsaCompiler());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1708,13 +1708,13 @@ std::string HSAILProgram::hsailOptions() {
|
||||
std::string hsailOptions;
|
||||
// Set options for the standard device specific options
|
||||
// All our devices support these options now
|
||||
if (dev().settings().reportFMAF_) {
|
||||
if (gpuNullDevice().settings().reportFMAF_) {
|
||||
hsailOptions.append(" -DFP_FAST_FMAF=1");
|
||||
}
|
||||
if (dev().settings().reportFMA_) {
|
||||
if (gpuNullDevice().settings().reportFMA_) {
|
||||
hsailOptions.append(" -DFP_FAST_FMA=1");
|
||||
}
|
||||
if (!dev().settings().singleFpDenorm_) {
|
||||
if (!gpuNullDevice().settings().singleFpDenorm_) {
|
||||
hsailOptions.append(" -cl-denorms-are-zero");
|
||||
}
|
||||
|
||||
@@ -1738,7 +1738,7 @@ std::string HSAILProgram::hsailOptions() {
|
||||
bool HSAILProgram::allocKernelTable() {
|
||||
uint size = kernels().size() * sizeof(size_t);
|
||||
|
||||
kernels_ = new gpu::Memory(dev(), size);
|
||||
kernels_ = new gpu::Memory(gpuDevice(), size);
|
||||
// Initialize kernel table
|
||||
if ((kernels_ == NULL) || !kernels_->create(Resource::RemoteUSWC)) {
|
||||
delete kernels_;
|
||||
@@ -1767,7 +1767,7 @@ const aclTargetInfo& HSAILProgram::info(const char* str) {
|
||||
arch = "hsail64";
|
||||
}
|
||||
info_ = aclGetTargetInfo(arch.c_str(),
|
||||
(str && str[0] == '\0' ? dev().hwInfo()->targetName_ : str), &err);
|
||||
(str && str[0] == '\0' ? gpuNullDevice().hwInfo()->targetName_ : str), &err);
|
||||
if (err != ACL_SUCCESS) {
|
||||
LogWarning("aclGetTargetInfo failed");
|
||||
}
|
||||
@@ -1867,7 +1867,7 @@ hsa_isa_t ORCAHSALoaderContext::IsaFromName(const char* name) {
|
||||
}
|
||||
|
||||
bool ORCAHSALoaderContext::IsaSupportedByAgent(hsa_agent_t agent, hsa_isa_t isa) {
|
||||
uint dev_gfxip = program_->dev().hwInfo()->gfxipVersion_;
|
||||
uint dev_gfxip = program_->gpuNullDevice().hwInfo()->gfxipVersion_;
|
||||
uint isa_gfxip = isa.handle;
|
||||
switch (dev_gfxip) {
|
||||
case gfx700:
|
||||
@@ -1892,7 +1892,7 @@ bool ORCAHSALoaderContext::IsaSupportedByAgent(hsa_agent_t agent, hsa_isa_t isa)
|
||||
case gfx602:
|
||||
default:
|
||||
LogPrintfError("Unsupported gfxip version gfx%d", dev_gfxip);
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2024,7 +2024,7 @@ hsa_status_t ORCAHSALoaderContext::SamplerCreate(
|
||||
assert(false);
|
||||
return HSA_STATUS_ERROR_INVALID_ARGUMENT;
|
||||
}
|
||||
gpu::Sampler* sampler = new gpu::Sampler(program_->dev());
|
||||
gpu::Sampler* sampler = new gpu::Sampler(program_->gpuDevice());
|
||||
if (!sampler || !sampler->create(state)) {
|
||||
delete sampler;
|
||||
return HSA_STATUS_ERROR;
|
||||
@@ -2075,15 +2075,15 @@ void* ORCAHSALoaderContext::GpuMemAlloc(size_t size, size_t align, bool zero) {
|
||||
return new char[size];
|
||||
}
|
||||
|
||||
gpu::Memory* mem = new gpu::Memory(program_->dev(), amd::alignUp(size, align));
|
||||
gpu::Memory* mem = new gpu::Memory(program_->gpuDevice(), amd::alignUp(size, align));
|
||||
if (!mem || !mem->create(gpu::Resource::Local)) {
|
||||
delete mem;
|
||||
return NULL;
|
||||
}
|
||||
assert(program_->dev().xferQueue());
|
||||
assert(program_->gpuDevice().xferQueue());
|
||||
if (zero) {
|
||||
char pattern = 0;
|
||||
program_->dev().xferMgr().fillBuffer(*mem, &pattern, sizeof(pattern), amd::Coord3D(0),
|
||||
program_->gpuDevice().xferMgr().fillBuffer(*mem, &pattern, sizeof(pattern), amd::Coord3D(0),
|
||||
amd::Coord3D(size));
|
||||
}
|
||||
program_->addGlobalStore(mem);
|
||||
@@ -2102,9 +2102,9 @@ bool ORCAHSALoaderContext::GpuMemCopy(void* dst, size_t offset, const void* src,
|
||||
memcpy(reinterpret_cast<address>(dst) + offset, src, size);
|
||||
return true;
|
||||
}
|
||||
assert(program_->dev().xferQueue());
|
||||
assert(program_->gpuDevice().xferQueue());
|
||||
gpu::Memory* mem = reinterpret_cast<gpu::Memory*>(dst);
|
||||
return program_->dev().xferMgr().writeBuffer(src, *mem, amd::Coord3D(offset), amd::Coord3D(size),
|
||||
return program_->gpuDevice().xferMgr().writeBuffer(src, *mem, amd::Coord3D(offset), amd::Coord3D(size),
|
||||
true);
|
||||
return true;
|
||||
}
|
||||
|
||||
مرجع در شماره جدید
Block a user