Adding AnyOrder Flag
Change-Id: I6baaef42b98adfbc8cf2605e175ec007e008045f
[ROCm/clr commit: 48690f29e9]
This commit is contained in:
committed by
Jatin Chaudhary
parent
10f1bfc765
commit
7dae2632b9
@@ -2305,9 +2305,16 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const
|
||||
dispatchPacket.group_segment_size = ldsUsage + sharedMemBytes;
|
||||
dispatchPacket.private_segment_size = devKernel->workGroupInfo()->privateMemSize_;
|
||||
|
||||
// Pass the header accordingly
|
||||
auto aqlHeaderWithOrder = aqlHeader_;
|
||||
if (vcmd != nullptr && vcmd->getAnyOrderLaunchFlag()) {
|
||||
constexpr uint32_t kAqlHeaderMask = ~(1 << HSA_PACKET_HEADER_BARRIER);
|
||||
aqlHeaderWithOrder &= kAqlHeaderMask;
|
||||
}
|
||||
|
||||
// Dispatch the packet
|
||||
if (!dispatchAqlPacket(
|
||||
&dispatchPacket, aqlHeader_,
|
||||
&dispatchPacket, aqlHeaderWithOrder,
|
||||
(sizes.dimensions() << HSA_KERNEL_DISPATCH_PACKET_SETUP_DIMENSIONS),
|
||||
GPU_FLUSH_ON_EXECUTION)) {
|
||||
return false;
|
||||
@@ -2406,7 +2413,7 @@ void VirtualGPU::submitKernel(amd::NDRangeKernelCommand& vcmd) {
|
||||
|
||||
// Submit kernel to HW
|
||||
if (!submitKernelInternal(vcmd.sizes(), vcmd.kernel(), vcmd.parameters(),
|
||||
static_cast<void*>(as_cl(&vcmd.event())), vcmd.sharedMemBytes())) {
|
||||
static_cast<void*>(as_cl(&vcmd.event())), vcmd.sharedMemBytes(), &vcmd)) {
|
||||
LogError("AQL dispatch failed!");
|
||||
vcmd.setStatus(CL_INVALID_OPERATION);
|
||||
}
|
||||
|
||||
@@ -794,6 +794,7 @@ class NDRangeKernelCommand : public Command {
|
||||
enum {
|
||||
CooperativeGroups = 0x01,
|
||||
CooperativeMultiDeviceGroups = 0x02,
|
||||
AnyOrderLaunch = 0x04,
|
||||
};
|
||||
|
||||
//! Construct an ExecuteKernel command
|
||||
@@ -827,6 +828,9 @@ class NDRangeKernelCommand : public Command {
|
||||
return (extraParam_ & CooperativeMultiDeviceGroups) ? true : false;
|
||||
}
|
||||
|
||||
//! Returns extra Param, set when using anyorder launch
|
||||
bool getAnyOrderLaunchFlag() const { return (extraParam_ & AnyOrderLaunch) ? true : false; }
|
||||
|
||||
//! Return the current grid ID for multidevice launch
|
||||
uint32_t gridId() const { return gridId_; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user