P4 to Git Change 1567349 by jatang@jatang_rocm_lc2 on 2018/06/12 16:09:03
SWDEV-126897 - Support OpenCL Device Enqueue on ROCm. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#23 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.hpp#10 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdefs.hpp#17 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#88 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.cpp#35 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rockernel.hpp#22 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.hpp#32 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsched.hpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocschedcl.cpp#1 add ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#33 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.hpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#56 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#16 edit
Cette révision appartient à :
@@ -560,6 +560,8 @@ bool Device::init() {
|
||||
return true;
|
||||
}
|
||||
|
||||
extern const char* SchedulerSourceCode;
|
||||
|
||||
void Device::tearDown() {
|
||||
NullDevice::tearDown();
|
||||
hsa_shut_down();
|
||||
@@ -611,7 +613,12 @@ bool Device::create() {
|
||||
return false;
|
||||
}
|
||||
|
||||
const char* scheduler = nullptr;
|
||||
|
||||
#if defined(WITH_LIGHTNING_COMPILER)
|
||||
std::string sch = SchedulerSourceCode;
|
||||
scheduler = sch.c_str();
|
||||
|
||||
// create compilation object with cache support
|
||||
int gfxipMajor = deviceInfo_.gfxipVersion_ / 100;
|
||||
int gfxipMinor = deviceInfo_.gfxipVersion_ / 10 % 10;
|
||||
@@ -647,7 +654,7 @@ bool Device::create() {
|
||||
|
||||
blitProgram_ = new BlitProgram(context_);
|
||||
// Create blit programs
|
||||
if (blitProgram_ == nullptr || !blitProgram_->create(this)) {
|
||||
if (blitProgram_ == nullptr || !blitProgram_->create(this, scheduler)) {
|
||||
delete blitProgram_;
|
||||
blitProgram_ = nullptr;
|
||||
LogError("Couldn't create blit kernels!");
|
||||
@@ -1025,7 +1032,7 @@ bool Device::populateOCLDeviceConstants() {
|
||||
ss << ")";
|
||||
|
||||
strcpy(info_.driverVersion_, ss.str().c_str());
|
||||
info_.version_ = "OpenCL " /*OPENCL_VERSION_STR*/"1.2" " ";
|
||||
info_.version_ = "OpenCL " OPENCL_VERSION_STR " ";
|
||||
|
||||
info_.builtInKernels_ = "";
|
||||
info_.linkerAvailable_ = true;
|
||||
@@ -1196,6 +1203,13 @@ bool Device::populateOCLDeviceConstants() {
|
||||
info_.maxPipeActiveReservations_ = 16;
|
||||
info_.maxPipeArgs_ = 16;
|
||||
|
||||
info_.queueOnDeviceProperties_ =
|
||||
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE | CL_QUEUE_PROFILING_ENABLE;
|
||||
info_.queueOnDevicePreferredSize_ = 256 * Ki;
|
||||
info_.queueOnDeviceMaxSize_ = 8 * Mi;
|
||||
info_.maxOnDeviceQueues_ = 1;
|
||||
info_.maxOnDeviceEvents_ = settings().numDeviceEvents_;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur