P4 to Git Change 1364923 by gandryey@gera-lnx-rcf-lc on 2017/01/23 11:48:45
SWDEV-110996 - OCL to use the blit manager instead ROCr implementing copyRect API - Implement the blit manager functionality in ROCm backened. This checki-in also fixes SWDEV-95079, SWDEV-95068, SWDEV-95069, SWDEV-95071 Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.cpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocblit.hpp#4 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdefs.hpp#9 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#35 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.hpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.hpp#5 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.hpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.cpp#27 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocvirtual.hpp#6 edit
This commit is contained in:
@@ -53,14 +53,38 @@ Settings::Settings()
|
||||
enablePartialDispatch_ = (partialDispatch) ? false : true;
|
||||
partialDispatch_ = (partialDispatch) ? false : true;
|
||||
commandQueues_ = 100; //!< Field value set to maximum number
|
||||
//!< concurrent Virtual GPUs for ROCm backend
|
||||
//!< concurrent Virtual GPUs for ROCm backend
|
||||
|
||||
// Disable image DMA by default (ROCM runtime doesn't support it)
|
||||
imageDMA_ = false;
|
||||
|
||||
stagedXferRead_ = true;
|
||||
stagedXferWrite_ = true;
|
||||
stagedXferSize_ = GPU_STAGING_BUFFER_SIZE * Ki;
|
||||
|
||||
// Initialize transfer buffer size to 1MB by default
|
||||
xferBufSize_ = 1024 * Ki;
|
||||
|
||||
const static size_t MaxPinnedXferSize = 32;
|
||||
pinnedXferSize_ = std::min(GPU_PINNED_XFER_SIZE, MaxPinnedXferSize) * Mi;
|
||||
pinnedMinXferSize_ = std::min(GPU_PINNED_MIN_XFER_SIZE * Ki, pinnedXferSize_);
|
||||
}
|
||||
|
||||
bool
|
||||
Settings::create(bool doublePrecision)
|
||||
Settings::create(bool fullProfile)
|
||||
{
|
||||
customHostAllocator_ = true;
|
||||
|
||||
if (fullProfile) {
|
||||
pinnedXferSize_ = 0;
|
||||
stagedXferSize_ = 0;
|
||||
xferBufSize_ = 0;
|
||||
}
|
||||
else {
|
||||
pinnedXferSize_ = std::max(pinnedXferSize_, pinnedMinXferSize_);
|
||||
stagedXferSize_ = std::max(stagedXferSize_, pinnedMinXferSize_ + 4 * Ki);
|
||||
}
|
||||
|
||||
// Enable extensions
|
||||
enableExtension(ClKhrByteAddressableStore);
|
||||
enableExtension(ClKhrGlobalInt32BaseAtomics);
|
||||
@@ -72,21 +96,16 @@ Settings::create(bool doublePrecision)
|
||||
enableExtension(ClKhr3DImageWrites);
|
||||
enableExtension(ClAmdMediaOps);
|
||||
enableExtension(ClAmdMediaOps2);
|
||||
if(MesaInterop::Supported())
|
||||
enableExtension(ClKhrGlSharing);
|
||||
|
||||
// Make sure device supports doubles
|
||||
doublePrecision_ &= doublePrecision;
|
||||
|
||||
if (doublePrecision_) {
|
||||
// Enable KHR double precision extension
|
||||
enableExtension(ClKhrFp64);
|
||||
#if !defined(WITH_LIGHTNING_COMPILER)
|
||||
// Also enable AMD double precision extension?
|
||||
enableExtension(ClAmdFp64);
|
||||
#endif // !defined(WITH_LIGHTNING_COMPILER)
|
||||
if(MesaInterop::Supported()) {
|
||||
enableExtension(ClKhrGlSharing);
|
||||
}
|
||||
|
||||
// Enable KHR double precision extension
|
||||
enableExtension(ClKhrFp64);
|
||||
#if !defined(WITH_LIGHTNING_COMPILER)
|
||||
// Also enable AMD double precision extension?
|
||||
enableExtension(ClAmdFp64);
|
||||
#endif // !defined(WITH_LIGHTNING_COMPILER)
|
||||
enableExtension(ClKhrSubGroups);
|
||||
|
||||
enableExtension(ClKhrDepthImages);
|
||||
@@ -109,6 +128,18 @@ Settings::override()
|
||||
if (!flagIsDefault(GPU_MAX_COMMAND_QUEUES)) {
|
||||
commandQueues_ = GPU_MAX_COMMAND_QUEUES;
|
||||
}
|
||||
|
||||
if (!flagIsDefault(GPU_IMAGE_DMA)) {
|
||||
commandQueues_ = GPU_IMAGE_DMA;
|
||||
}
|
||||
|
||||
if (!flagIsDefault(GPU_XFER_BUFFER_SIZE)) {
|
||||
xferBufSize_ = GPU_XFER_BUFFER_SIZE * Ki;
|
||||
}
|
||||
|
||||
if (!flagIsDefault(GPU_PINNED_MIN_XFER_SIZE)) {
|
||||
pinnedMinXferSize_ = std::min(GPU_PINNED_MIN_XFER_SIZE * Ki, pinnedXferSize_);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace roc
|
||||
|
||||
Reference in New Issue
Block a user