Use 'RecordProperty' to record performance scores

For following test cases:
- KFDQMTest.QueueLatency
- KFDQMTest.BasicCuMaskingLinear
- KFDQMTest.BasicCuMaskingEven
- KFDMemoryTest.MMBandWidth
- KFDMemoryTest.MMapLarge
- KFDMemoryTest.MMBench

v2: xml element cannot start with a number, so change the key name of
    MMBandWidth and MMBench accordingly
    xml element cannot contain whitespaces, so trim whitespaces in "VRAM  "
v3: introduce KFDLog-like way to use KFDRecord

Change-Id: Ifc3ed5657621252a7b39dccf1ef4f50a92593f77
Signed-off-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
This commit is contained in:
Xiaojie Yuan
2018-09-12 17:30:42 +08:00
förälder a6287ba919
incheckning 247fa9f1e0
3 ändrade filer med 56 tillägg och 4 borttagningar
+24 -4
Visa fil
@@ -176,6 +176,8 @@ TEST_F(KFDMemoryTest, MMapLarge) {
LOG() << "Successfully registered and mapped " << (i * s >> 30)
<< "GB system memory to gpu" << std::endl;
RECORD(i * s >> 30) << "Mmap-SysMem-Size";
while (i--) {
EXPECT_SUCCESS(hsaKmtUnmapMemoryToGPU(reinterpret_cast<void*>(AlternateVAGPU[i])));
EXPECT_SUCCESS(hsaKmtDeregisterMemory(reinterpret_cast<void*>(AlternateVAGPU[i])));
@@ -1020,6 +1022,16 @@ TEST_F(KFDMemoryTest, MMBench) {
<< std::setw(8) << mapAllTime
<< std::setw(8) << unmapAllTime
<< std::setw(8) << freeTime << std::endl;
#define MMBENCH_KEY_PREFIX memTypeStrings[memType] << "-" \
<< (interleaveSDMA ? "SDMA" : "noSDMA") << "-" \
<< (bufSize >> 10) << "K-"
RECORD(allocTime) << MMBENCH_KEY_PREFIX << "alloc";
RECORD(map1Time) << MMBENCH_KEY_PREFIX << "mapOne";
RECORD(unmap1Time) << MMBENCH_KEY_PREFIX << "unmapOne";
RECORD(mapAllTime) << MMBENCH_KEY_PREFIX << "mapAll";
RECORD(unmapAllTime) << MMBENCH_KEY_PREFIX << "unmapAll";
RECORD(freeTime) << MMBENCH_KEY_PREFIX << "free";
}
TEST_END
@@ -1551,7 +1563,7 @@ TEST_F(KFDMemoryTest, MMBandWidth) {
const unsigned nBufs = 1000; /* measure us, report ns */
unsigned testIndex, sizeIndex, memType;
const unsigned nMemTypes = 2;
const char *memTypeStrings[nMemTypes] = {"SysMem", "VRAM "};
const char *memTypeStrings[nMemTypes] = {"SysMem", "VRAM"};
const unsigned nSizes = 4;
const unsigned bufSizes[nSizes] = {PAGE_SIZE, PAGE_SIZE*4, PAGE_SIZE*16, PAGE_SIZE*64};
const unsigned nTests = nSizes * nMemTypes;
@@ -1641,14 +1653,22 @@ TEST_F(KFDMemoryTest, MMBandWidth) {
for (i = 0; i < nBufs; i++)
EXPECT_SUCCESS(hsaKmtFreeMemory(bufs[i], bufSize));
LOG() << std::dec << std::setiosflags(std::ios::right)
<< std::setw(3) << (bufSize >> 10) << "K-"
<< memTypeStrings[memType] << "\t"
LOG() << std::dec
<< std::right << std::setw(3) << (bufSize >> 10) << "K-"
<< std::left << std::setw(14) << memTypeStrings[memType]
<< std::right
<< std::setw(12) << mcpRTime
<< std::setw(12) << mcpWTime
<< std::setw(12) << accessRTime
<< std::setw(12) << accessWTime
<< std::endl;
#define MMBANDWIDTH_KEY_PREFIX memTypeStrings[memType] << "-" \
<< (bufSize >> 10) << "K" << "-"
RECORD(mcpRTime) << MMBANDWIDTH_KEY_PREFIX << "mcpRTime";
RECORD(mcpWTime) << MMBANDWIDTH_KEY_PREFIX << "mcpWTime";
RECORD(accessRTime) << MMBANDWIDTH_KEY_PREFIX << "accessRTime";
RECORD(accessWTime) << MMBANDWIDTH_KEY_PREFIX << "accessWTime";
}
munmap(tmp, tmpBufferSize);