Use spend_cpu_cycles instead of volatile loop
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user