Use spend_cpu_cycles instead of volatile loop

This commit is contained in:
2025-09-15 14:07:38 -04:00
parent 528a467518
commit 9120c05847
2 changed files with 8 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
#include "cpu_work.hpp"
#include "thread_pipeline.hpp"
#include <latch>
@@ -19,8 +20,7 @@ int main() {
.warmup(100);
bench.run("Zero stage pipeline", [&] {
for (int i = 0; i < NUM_ITEMS; ++i) {
for (volatile int i = 0; i < BUSY_ITERS; i = i + 1) {
}
spend_cpu_cycles(BUSY_ITERS);
}
});
@@ -35,8 +35,7 @@ int main() {
auto guard = pipeline.acquire<0, 0>();
for (auto &item : guard.batch) {
for (volatile int i = 0; i < BUSY_ITERS; i = i + 1) {
}
spend_cpu_cycles(BUSY_ITERS);
if (item == &done) {
return;
}
@@ -101,8 +100,7 @@ int main() {
auto guard = pipeline.acquire<0, 0>();
for (auto &item : guard.batch) {
for (volatile int i = 0; i < BUSY_ITERS; i = i + 1) {
}
spend_cpu_cycles(BUSY_ITERS);
if (item == &done) {
return;
}
@@ -164,8 +162,7 @@ int main() {
for (;;) {
auto guard = pipeline.template acquire<0, 0>();
for (auto &item : guard.batch) {
for (volatile int i = 0; i < BUSY_ITERS; i = i + 1) {
}
spend_cpu_cycles(BUSY_ITERS);
if (item == &done)
return;
}
@@ -177,8 +174,7 @@ int main() {
for (;;) {
auto guard = pipeline.template acquire<1, 0>();
for (auto &item : guard.batch) {
for (volatile int i = 0; i < BUSY_ITERS; i = i + 1) {
}
spend_cpu_cycles(BUSY_ITERS);
if (item == &done)
return;
if (item)