Update the benchmarks
This commit is contained in:
parent
f827e7c2e5
commit
b74e376e16
3 changed files with 57 additions and 18 deletions
|
|
@ -18,7 +18,8 @@ static void Scalar(benchmark::State& state) {
|
|||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, false>(input, absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, false);
|
||||
sfz::readInterleaved(input, absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -29,7 +30,8 @@ static void SSE(benchmark::State& state) {
|
|||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, true>(input, absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, true);
|
||||
sfz::readInterleaved(input, absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -39,7 +41,12 @@ static void Scalar_Unaligned(benchmark::State& state) {
|
|||
sfz::Buffer<float> outputRight (state.range(0));
|
||||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, false>(absl::MakeSpan(input).subspan(2), absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, false);
|
||||
sfz::readInterleaved(
|
||||
absl::MakeSpan(input).subspan(2),
|
||||
absl::MakeSpan(outputLeft),
|
||||
absl::MakeSpan(outputRight)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -49,7 +56,12 @@ static void SSE_Unaligned(benchmark::State& state) {
|
|||
sfz::Buffer<float> outputRight (state.range(0));
|
||||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, true>(absl::MakeSpan(input).subspan(2), absl::MakeSpan(outputLeft), absl::MakeSpan(outputRight));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, true);
|
||||
sfz::readInterleaved(
|
||||
absl::MakeSpan(input).subspan(2),
|
||||
absl::MakeSpan(outputLeft),
|
||||
absl::MakeSpan(outputRight)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -59,7 +71,12 @@ static void Scalar_Unaligned_2(benchmark::State& state) {
|
|||
sfz::Buffer<float> outputRight (state.range(0));
|
||||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, false>(absl::MakeSpan(input).subspan(2), absl::MakeSpan(outputLeft).subspan(1), absl::MakeSpan(outputRight).subspan(3));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, false);
|
||||
sfz::readInterleaved(
|
||||
absl::MakeSpan(input).subspan(2),
|
||||
absl::MakeSpan(outputLeft).subspan(1),
|
||||
absl::MakeSpan(outputRight).subspan(3)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +86,12 @@ static void SSE_Unaligned_2(benchmark::State& state) {
|
|||
sfz::Buffer<float> outputRight (state.range(0));
|
||||
std::iota(input.begin(), input.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::readInterleaved<float, true>(absl::MakeSpan(input).subspan(2), absl::MakeSpan(outputLeft).subspan(1), absl::MakeSpan(outputRight).subspan(3));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::readInterleaved, true);
|
||||
sfz::readInterleaved(
|
||||
absl::MakeSpan(input).subspan(2),
|
||||
absl::MakeSpan(outputLeft).subspan(1),
|
||||
absl::MakeSpan(outputRight).subspan(3)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ static void Interleaved_Write(benchmark::State& state) {
|
|||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, false>(inputLeft, inputRight, absl::MakeSpan(output));
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, false);
|
||||
sfz::writeInterleaved(inputLeft, inputRight, absl::MakeSpan(output));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -30,8 +31,8 @@ static void Interleaved_Write_SSE(benchmark::State& state) {
|
|||
std::iota(inputLeft.begin(), inputLeft.end(), 1.0f);
|
||||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, true>(inputLeft, inputRight, absl::MakeSpan(output));
|
||||
benchmark::DoNotOptimize(output);
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, true);
|
||||
sfz::writeInterleaved(inputLeft, inputRight, absl::MakeSpan(output));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -42,8 +43,12 @@ static void Unaligned_Interleaved_Write(benchmark::State& state) {
|
|||
std::iota(inputLeft.begin(), inputLeft.end(), 1.0f);
|
||||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, false>(absl::MakeSpan(inputLeft).subspan(1) , absl::MakeSpan(inputRight).subspan(1), absl::MakeSpan(output).subspan(2));
|
||||
benchmark::DoNotOptimize(output);
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, false);
|
||||
sfz::writeInterleaved(
|
||||
absl::MakeSpan(inputLeft).subspan(1),
|
||||
absl::MakeSpan(inputRight).subspan(1),
|
||||
absl::MakeSpan(output).subspan(2)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -54,8 +59,12 @@ static void Unaligned_Interleaved_Write_SSE(benchmark::State& state) {
|
|||
std::iota(inputLeft.begin(), inputLeft.end(), 1.0f);
|
||||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, true>(absl::MakeSpan(inputLeft).subspan(1) , absl::MakeSpan(inputRight).subspan(1), absl::MakeSpan(output).subspan(2));
|
||||
benchmark::DoNotOptimize(output);
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, true);
|
||||
sfz::writeInterleaved(
|
||||
absl::MakeSpan(inputLeft).subspan(1),
|
||||
absl::MakeSpan(inputRight).subspan(1),
|
||||
absl::MakeSpan(output).subspan(2)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -66,8 +75,12 @@ static void Unaligned_Interleaved_Write_2(benchmark::State& state) {
|
|||
std::iota(inputLeft.begin(), inputLeft.end(), 1.0f);
|
||||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, false>(absl::MakeSpan(inputLeft) , absl::MakeSpan(inputRight).subspan(1), absl::MakeSpan(output).subspan(2));
|
||||
benchmark::DoNotOptimize(output);
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, false);
|
||||
sfz::writeInterleaved(
|
||||
absl::MakeSpan(inputLeft),
|
||||
absl::MakeSpan(inputRight).subspan(1),
|
||||
absl::MakeSpan(output).subspan(2)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -78,8 +91,12 @@ static void Unaligned_Interleaved_Write_SSE_2(benchmark::State& state) {
|
|||
std::iota(inputLeft.begin(), inputLeft.end(), 1.0f);
|
||||
std::iota(inputRight.begin(), inputRight.end(), 1.0f);
|
||||
for (auto _ : state) {
|
||||
sfz::writeInterleaved<float, true>(absl::MakeSpan(inputLeft) , absl::MakeSpan(inputRight).subspan(1), absl::MakeSpan(output).subspan(2));
|
||||
benchmark::DoNotOptimize(output);
|
||||
sfz::setSIMDOpStatus(sfz::SIMDOps::writeInterleaved, true);
|
||||
sfz::writeInterleaved(
|
||||
absl::MakeSpan(inputLeft),
|
||||
absl::MakeSpan(inputRight).subspan(1),
|
||||
absl::MakeSpan(output).subspan(2)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ if(SAMPLERATE_LIBRARY AND SAMPLERATE_INCLUDE_DIR)
|
|||
endif()
|
||||
|
||||
add_library(bm_simd STATIC ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_simd PRIVATE absl::span)
|
||||
target_link_libraries(bm_simd PRIVATE absl::span sfizz-cpuid)
|
||||
target_include_directories(bm_simd PRIVATE ../src/external)
|
||||
add_library(bm_ftz STATIC ../src/sfizz/ScopedFTZ.cpp)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue