Fixed group and private memory size to AQL

Change-Id: I6e721f63fe5697b7b90a7d25add9aa024d9dc429
Dieser Commit ist enthalten in:
Aditya Atluri
2016-09-07 12:57:18 -05:00
Ursprung 87d7e95693
Commit 2c2f6ab078
3 geänderte Dateien mit 21 neuen und 6 gelöschten Zeilen
+4 -3
Datei anzeigen
@@ -522,7 +522,8 @@ void ihipStream_t::launchModuleKernel(
uint32_t gridDimX,
uint32_t gridDimY,
uint32_t gridDimZ,
uint32_t sharedMemBytes,
uint32_t groupSegmentSize,
uint32_t privateSegmentSize,
void *kernarg,
size_t kernSize,
uint64_t kernel){
@@ -545,8 +546,8 @@ void ihipStream_t::launchModuleKernel(
dispatch_packet->grid_size_x = blockDimX * gridDimX;
dispatch_packet->grid_size_y = blockDimY * gridDimY;
dispatch_packet->grid_size_z = blockDimZ * gridDimZ;
dispatch_packet->group_segment_size = 0;
dispatch_packet->private_segment_size = sharedMemBytes;
dispatch_packet->group_segment_size = groupSegmentSize;
dispatch_packet->private_segment_size = privateSegmentSize;
dispatch_packet->kernarg_address = kern;
dispatch_packet->kernel_object = kernel;
uint16_t header = (HSA_PACKET_TYPE_KERNEL_DISPATCH << HSA_PACKET_HEADER_TYPE) |
+15 -2
Datei anzeigen
@@ -252,10 +252,23 @@ hipError_t hipModuleLaunchKernel(hipFunction_t f,
}else{
return ihipLogStatus(hipErrorInvalidValue);
}
uint32_t groupSegmentSize;
hsa_status_t status = hsa_executable_symbol_get_info(f->kernel_symbol,
HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_GROUP_SEGMENT_SIZE,
&groupSegmentSize);
uint32_t privateSegmentSize;
status = hsa_executable_symbol_get_info(f->kernel_symbol,
HSA_EXECUTABLE_SYMBOL_INFO_KERNEL_PRIVATE_SEGMENT_SIZE,
&privateSegmentSize);
privateSegmentSize += sharedMemBytes;
/*
Kernel argument preparation.
*/
hsa_status_t status;
grid_launch_parm lp;
hStream = ihipPreLaunchKernel(hStream, 0, 0, &lp);
@@ -270,7 +283,7 @@ Kernel argument preparation.
Launch AQL packet
*/
hStream->launchModuleKernel(*lp.av, signal, blockDimX, blockDimY, blockDimZ,
gridDimX, gridDimY, gridDimZ, sharedMemBytes, config[1], kernSize, f->kernel);
gridDimX, gridDimY, gridDimZ, groupSegmentSize, privateSegmentSize, config[1], kernSize, f->kernel);
/*
Wait for signal