kfdtest: Make KFDCWSRTest.BasicTest buffer sizes dynamic

KFDCWSRTest.BasicTest is parameterized to allow an easy method of
tweaking the number of work-items (and save/restores). The input/output
buffers were previously hardcoded to a single page, which would cause a
segmentation fault if the number of work-items specified is greater than
1024 for wave32.

Signed-off-by: Graham Sider <Graham.Sider@amd.com>
Change-Id: Ieefc819a5d81c77cee88081a287fd383e6378e74


[ROCm/ROCR-Runtime commit: 73adbdee2c]
Šī revīzija ir iekļauta:
Graham Sider
2022-09-08 16:44:51 -04:00
vecāks dadefb3a80
revīzija d1bcd2d405
@@ -88,8 +88,11 @@ TEST_P(KFDCWSRTest, BasicTest) {
unsigned stopval = 0x1234'5678;
unsigned outval = 0x8765'4321;
HsaMemoryBuffer inputBuf(PAGE_SIZE, defaultGPUNode, true, false, false);
HsaMemoryBuffer outputBuf(PAGE_SIZE, defaultGPUNode, true, false, false);
// 4B per work-item ==> 1 page per 1024 work-items (take ceiling)
unsigned bufSize = PAGE_SIZE * ((num_witems / 1024) + (num_witems % 1024 != 0));
HsaMemoryBuffer inputBuf(bufSize, defaultGPUNode, true, false, false);
HsaMemoryBuffer outputBuf(bufSize, defaultGPUNode, true, false, false);
unsigned int* input = inputBuf.As<unsigned int*>();
unsigned int* output = outputBuf.As<unsigned int*>();
inputBuf.Fill(0);