TinyMemBenchNX: up to 3 threads/cores, but the result is still limited to CPU clock rate?
This commit is contained in:
Binary file not shown.
5
Source/TinyMemBenchNX/.gitignore
vendored
Normal file
5
Source/TinyMemBenchNX/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*.DS_Store
|
||||||
|
build/
|
||||||
|
*.elf
|
||||||
|
*.nacp
|
||||||
|
*.nro
|
||||||
@@ -888,7 +888,7 @@ void printClock()
|
|||||||
clkrstGetClockRate(&clkrstSession, &mem_hz);
|
clkrstGetClockRate(&clkrstSession, &mem_hz);
|
||||||
clkrstCloseSession(&clkrstSession);
|
clkrstCloseSession(&clkrstSession);
|
||||||
|
|
||||||
printf("== CPU: %u.%u MHz == MEM: %u.%u MHz ==\n",
|
printf("== CPU: %u.%u MHz ==\n== MEM: %u.%u MHz ==\n",
|
||||||
cpu_hz/1000000, cpu_hz/100000 - cpu_hz/1000000*10,
|
cpu_hz/1000000, cpu_hz/100000 - cpu_hz/1000000*10,
|
||||||
mem_hz/1000000, mem_hz/100000 - mem_hz/1000000*10);
|
mem_hz/1000000, mem_hz/100000 - mem_hz/1000000*10);
|
||||||
consoleUpdate(NULL);
|
consoleUpdate(NULL);
|
||||||
@@ -899,24 +899,20 @@ int main(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
consoleInit(NULL);
|
consoleInit(NULL);
|
||||||
|
|
||||||
|
printf("TinyMemBenchNX v0.4.10\n\
|
||||||
|
(based on tinymembench-pthread, a multi-thread fork of simple benchmark for memory throughput and latency)\n");
|
||||||
|
printf("\n");
|
||||||
|
consoleUpdate(NULL);
|
||||||
|
|
||||||
padConfigureInput(1, HidNpadStyleSet_NpadStandard);
|
padConfigureInput(1, HidNpadStyleSet_NpadStandard);
|
||||||
|
|
||||||
padInitializeDefault(&pad);
|
padInitializeDefault(&pad);
|
||||||
|
|
||||||
int latbench_size = SIZE * 2, latbench_count = LATBENCH_COUNT;
|
|
||||||
int64_t *srcbuf, *dstbuf, *tmpbuf;
|
int64_t *srcbuf, *dstbuf, *tmpbuf;
|
||||||
void *poolbuf;
|
void *poolbuf;
|
||||||
size_t bufsize = SIZE;
|
size_t bufsize = SIZE;
|
||||||
int threads = 2;
|
int threads = 0;
|
||||||
|
|
||||||
printf("TinyMemBenchNX v0.4.10\n\
|
|
||||||
(based on tinymembench-pthread, a multi-thread fork of simple benchmark for memory throughput and latency)\n");
|
|
||||||
|
|
||||||
poolbuf = alloc_four_nonaliased_buffers((void **)&srcbuf, bufsize * threads,
|
|
||||||
(void **)&dstbuf, bufsize * threads,
|
|
||||||
(void **)&tmpbuf, BLOCKSIZE * threads,
|
|
||||||
NULL, 0);
|
|
||||||
printf("\n");
|
|
||||||
printf("==========================================================================\n");
|
printf("==========================================================================\n");
|
||||||
printf("== Memory bandwidth tests ==\n");
|
printf("== Memory bandwidth tests ==\n");
|
||||||
printf("== ==\n");
|
printf("== ==\n");
|
||||||
@@ -933,10 +929,10 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
printf("!!! Memory bandwidth heavily depends on CPU clock. !!!\n\n");
|
printf("!!! Memory bandwidth heavily depends on CPU clock. !!!\n\n");
|
||||||
printf("\
|
printf("\
|
||||||
Press A to start bandwidth test @ 1 thread.\n\
|
Press A to start bandwidth test w/ 1 thread.\n\
|
||||||
Press B to start bandwidth test @ 2 threads.\n\
|
Press X to start bandwidth test w/ 2 threads.\n\
|
||||||
|
Press Y to start bandwidth test w/ 3 threads.\n\
|
||||||
Press any other key to exit.\n\n");
|
Press any other key to exit.\n\n");
|
||||||
|
|
||||||
consoleUpdate(NULL);
|
consoleUpdate(NULL);
|
||||||
|
|
||||||
while (appletMainLoop())
|
while (appletMainLoop())
|
||||||
@@ -950,11 +946,16 @@ Press any other key to exit.\n\n");
|
|||||||
threads = 1;
|
threads = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (kDown & HidNpadButton_B)
|
else if (kDown & HidNpadButton_X)
|
||||||
{
|
{
|
||||||
threads = 2;
|
threads = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
else if (kDown & HidNpadButton_Y)
|
||||||
|
{
|
||||||
|
threads = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
else if (kDown)
|
else if (kDown)
|
||||||
{
|
{
|
||||||
consoleExit(NULL);
|
consoleExit(NULL);
|
||||||
@@ -962,6 +963,11 @@ Press any other key to exit.\n\n");
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
poolbuf = alloc_four_nonaliased_buffers((void **)&srcbuf, bufsize * threads,
|
||||||
|
(void **)&dstbuf, bufsize * threads,
|
||||||
|
(void **)&tmpbuf, BLOCKSIZE * threads,
|
||||||
|
NULL, 0);
|
||||||
|
|
||||||
printClock();
|
printClock();
|
||||||
printf("== Thread: %d ==\n", threads);
|
printf("== Thread: %d ==\n", threads);
|
||||||
consoleUpdate(NULL);
|
consoleUpdate(NULL);
|
||||||
@@ -982,6 +988,8 @@ Press any other key to exit.\n\n");
|
|||||||
waitForKeyA();
|
waitForKeyA();
|
||||||
consoleClear();
|
consoleClear();
|
||||||
|
|
||||||
|
int latbench_size = SIZE * 2, latbench_count = LATBENCH_COUNT;
|
||||||
|
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("==========================================================================\n");
|
printf("==========================================================================\n");
|
||||||
printf("== Memory latency test ==\n");
|
printf("== Memory latency test ==\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user