P4 to Git Change 1208096 by ashi1@ashi1_win50 on 2015/11/05 18:20:58

SWDEV-80864 - HSAIL Metadata Workgroup Size Hint and Vec Type Hint added to HSAIL Runtime

	Runtime changes required for the use of these two metadata:
	  - Runtime's gpukernel.cpp requires new aclQueries during HSAILKernel::Init
	    - One for quering WorkGroupSizeHint's array
	    - Two for size of VecTypeHint and fetching VecTypeHint's string
	  - initArgList needs to be moved to end of HSAILKernel::init to allow createSignature to get non empty values
	  - Compiler lib's workgroup hint (wsh) needs to match runtime's type (size_t)
	  - In Kernel constructor, instead of using memset which corrupts std::string, specifically set default workGroupInfo struct's variables

	Also fixed wavesPerSimdHint to use size_t to match runtime.
	Updated CLAssumptionCheck.cpp since aclMetadata structure was modified.

	Note: This is the runtime counterpart to submitted CL#1204512. (Post Review#8808, SWDEV-79695)

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/legacy-lib/include/v0_8/aclStructs.h#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/include/v0_8/aclStructs.h#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#260 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#308 edit
... //depot/stg/opencl/drivers/opencl/tests/ocltst/module/complib/CLAssumptionCheck.cpp#48 edit
This commit is contained in:
foreman
2015-11-05 18:28:26 -05:00
parent 3e4332a85f
commit b9fcb50bbc
3 changed files with 68 additions and 6 deletions
+30 -1
View File
@@ -860,7 +860,36 @@ public:
//! Default constructor
Kernel(const std::string& name): name_(name), signature_(NULL), hsa_(false)
{ memset(&workGroupInfo_, '\0', sizeof(workGroupInfo_)); }
{
// Instead of memset(&workGroupInfo_, '\0', sizeof(workGroupInfo_));
// Due to std::string not being able to be memset to 0
workGroupInfo_.size_ = 0;
workGroupInfo_.compileSize_[0] = 0;
workGroupInfo_.compileSize_[1] = 0;
workGroupInfo_.compileSize_[2] = 0;
workGroupInfo_.localMemSize_ = 0;
workGroupInfo_.preferredSizeMultiple_ = 0;
workGroupInfo_.privateMemSize_ = 0;
workGroupInfo_.scratchRegs_ = 0;
workGroupInfo_.wavefrontPerSIMD_ = 0;
workGroupInfo_.wavefrontSize_ = 0;
workGroupInfo_.availableGPRs_ = 0;
workGroupInfo_.usedGPRs_ = 0;
workGroupInfo_.availableSGPRs_ = 0;
workGroupInfo_.usedSGPRs_ = 0;
workGroupInfo_.availableVGPRs_ = 0;
workGroupInfo_.usedVGPRs_ = 0;
workGroupInfo_.availableLDSSize_ = 0;
workGroupInfo_.usedLDSSize_ = 0;
workGroupInfo_.availableStackSize_ = 0;
workGroupInfo_.usedStackSize_ = 0;
workGroupInfo_.compileSizeHint_[0] = 0;
workGroupInfo_.compileSizeHint_[1] = 0;
workGroupInfo_.compileSizeHint_[2] = 0;
workGroupInfo_.compileVecTypeHint_ = "";
workGroupInfo_.uniformWorkGroupSize_ = false;
workGroupInfo_.wavesPerSimdHint_ = 0;
}
//! Default destructor
virtual ~Kernel();