0afafacfc5
mju_factorLU6/mju_solveLU6: same algorithm as mju_factorLU/mju_solveLU with compile-time size, allowing full unrolling. At n=6, factor+solve is 25% faster than the runtime-sized version (93 vs 124 ns), and fixed-size LU factorization is faster than generic dense Cholesky (55 vs 61 ns): at this size, runtime-n loop overhead outweighs Cholesky's 2x flop advantage. See new lu_benchmark_test. Results agree with the generic version to rounding, not bitwise: the compiler may fuse (FMA) the unrolled version differently. Also add two DenseLU tests: a pivoting-required matrix with zero diagonal, and fixed-vs-generic agreement. PiperOrigin-RevId: 947705056 Change-Id: I24c54c9510964aa376886e9dd721890eda9889d3
87 lines
2.3 KiB
CMake
87 lines
2.3 KiB
CMake
# Copyright 2021 DeepMind Technologies Limited
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
|
|
mujoco_test(
|
|
ccd_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers ccd
|
|
)
|
|
|
|
mujoco_test(
|
|
step_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
thread_performance_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
parse_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
engine_util_spatial_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
factorI_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
inertia_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
iszero_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
solveLD_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
lu_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
crb_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|
|
|
|
mujoco_test(
|
|
engine_util_sparse_benchmark_test
|
|
MAIN_TARGET benchmark::benchmark_main
|
|
ADDITIONAL_LINK_LIBRARIES benchmark::benchmark absl::core_headers
|
|
)
|