Inlining + Reorganization + Roofline

This commit is contained in:
[Quy Anh] «Elliot» Nguyen
2026-05-19 23:17:44 +02:00
committed by Linus Baumberger
parent 43f11a661b
commit b86c856e08
34 changed files with 2303 additions and 221 deletions
+16 -6
View File
@@ -47,12 +47,12 @@ CXXFLAGS := -O3 -march=native -std=c++23 -Wall -Wextra -flto
VARIANT ?= baseline
VARIANT_SRC := variant_$(VARIANT).cpp
VARIANT_SRC := ./variants/variant_$(VARIANT).cpp
SRC := main.cpp $(VARIANT_SRC)
HEADERS := board.hpp forces.hpp pedestrian.hpp vector2d.hpp constants.hpp social_force.hpp util.hpp
HEADERS := ./headers/board.hpp ./headers/pedestrian.hpp ./headers/vector2d.hpp ./headers/constants.hpp ./headers/util.hpp
TEST_SRC := test_vector2d.cpp test_board.cpp test_forces.cpp $(VARIANT_SRC)
TEST_SRC := ./tests/test_vector2d.cpp ./tests/test_board.cpp ./tests/test_forces.cpp $(VARIANT_SRC)
TEST_TARGET := run_tests
TEST_LIBS := -lgtest -lgtest_main -pthread
@@ -109,7 +109,7 @@ run: main
# make verify VARIANT=v1_cutoff # check a specific variant
verify: main
./$(TARGET) $(REFERENCE_N_P) $(REFERENCE_N_ITER) $(VERIFY_CSV)
@if python3 verify.py $(REFERENCE_CSV) $(VERIFY_CSV); then \
@if python3 ./scripts/verify.py $(REFERENCE_CSV) $(VERIFY_CSV); then \
echo "PASS: variant '$(VARIANT)' matches $(REFERENCE_CSV)"; \
rm -f $(VERIFY_CSV); \
else \
@@ -139,7 +139,7 @@ bench-suite: bench
# make video : compile the code, run the simulation, and generate the video.
video: run
python visualization.py $(CSV) $(MP4)
python ./scripts/visualization.py $(CSV) $(MP4)
# make sizes : compile the size-check helper.
sizes: clean
@@ -151,7 +151,17 @@ test: clean
./$(TEST_TARGET)
# make asm : compile and generate assembly files.
asm: clean main.s variant_$(VARIANT).s
ASM_CPP_SRCS := main.cpp $(VARIANT_SRC) sizes.cpp
ASM_HPP_SRCS := ./headers/util.hpp
ASM_SRCS := $(ASM_CPP_SRCS) $(ASM_HPP_SRCS)
ASM_TARGETS := $(patsubst %.cpp,%.s,$(patsubst %.hpp,%.s,$(ASM_SRCS)))
asm: clean
$(foreach src,$(ASM_CPP_SRCS),$(CXX) -O3 -march=native -std=c++23 -Wall -Wextra -DRANDOM_SEED=$(RANDOM_SEED) -S $(src) -o $(src:.cpp=.s); )
$(foreach src,$(ASM_HPP_SRCS),$(CXX) -O3 -march=native -std=c++23 -Wall -Wextra -DRANDOM_SEED=$(RANDOM_SEED) -x c++ -S $(src) -o $(src:.hpp=.s); )
%.s: %.cpp $(HEADERS)
$(CXX) -O3 -march=native -std=c++23 -Wall -Wextra -DRANDOM_SEED=$(RANDOM_SEED) -S $< -o $@