remove differences between C++ and Rust
diff --git a/enzyme/benchmarks/ReverseMode/adbench/gmm.h b/enzyme/benchmarks/ReverseMode/adbench/gmm.h index c5ec727..01f6b03 100644 --- a/enzyme/benchmarks/ReverseMode/adbench/gmm.h +++ b/enzyme/benchmarks/ReverseMode/adbench/gmm.h
@@ -219,7 +219,7 @@ getTests(paths, "data/10k", "10k/"); } - getTests(paths, "data/1k", "1k/"); + //getTests(paths, "data/1k", "1k/"); if (std::getenv("BENCH_LARGE")) { getTests(paths, "data/2.5k", "2.5k/"); getTests(paths, "data/10k", "10k/"); @@ -274,7 +274,7 @@ struct GMMOutput result = { 0, std::vector<double>(Jcols) }; - //if (0) { + if (0) { try { struct timeval start, end; gettimeofday(&start, NULL); @@ -294,7 +294,7 @@ } catch (std::bad_alloc) { printf("Adept combined 88888888 ooms\n"); } - //} + } } for (size_t i = 0; i < 5; i++) @@ -416,6 +416,7 @@ } } + { struct GMMInput input;
diff --git a/enzyme/benchmarks/ReverseMode/ba/Makefile.make b/enzyme/benchmarks/ReverseMode/ba/Makefile.make index 50ab0cf..6762e70 100644 --- a/enzyme/benchmarks/ReverseMode/ba/Makefile.make +++ b/enzyme/benchmarks/ReverseMode/ba/Makefile.make
@@ -1,4 +1,4 @@ -# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B ba-raw.ll results.json -f %s +# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s .PHONY: clean @@ -11,17 +11,8 @@ $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a: src/lib.rs Cargo.toml RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm -%-unopt.ll: %.cpp - clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm - -%-raw.ll: %-unopt.ll - opt $^ $(LOAD) $(ENZYME) -o $@ -S - -%-opt.ll: %-raw.ll - opt $^ -o $@ -S - -ba.o: ba-opt.ll $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a - clang++ $(BENCH) -pthread -O2 $^ -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o $@ $(BENCHLINK) -lpthread -lm -L /usr/lib/gcc/x86_64-linux-gnu/11 +ba.o: ba.cpp $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a + clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@ results.json: ba.o numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/fft/Makefile.make b/enzyme/benchmarks/ReverseMode/fft/Makefile.make index b9385cd..f0e54b8 100644 --- a/enzyme/benchmarks/ReverseMode/fft/Makefile.make +++ b/enzyme/benchmarks/ReverseMode/fft/Makefile.make
@@ -1,4 +1,4 @@ -# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B fft-raw.ll results.json -f %s +# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s .PHONY: clean @@ -6,22 +6,18 @@ clean: rm -f *.ll *.o results.txt results.json + cargo clean $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a: src/lib.rs Cargo.toml RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib -%-unopt.ll: %.cpp - clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-use-cxa-atexit -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm -%-raw.ll: %-unopt.ll - opt $^ $(LOAD) $(ENZYME) -o $@ -S +fft.o: fft.cpp $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a + clang++ $(LOADCLANG) $(BENCH) -DCPP=1 -O3 -fno-math-errno -fno-plt -mtune=cascadelake -g $^ $(BENCHLINK) -lm -o $@ -%-opt.ll: %-raw.ll - opt $^ -o $@ -S +fftr.o: fft.cpp $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a + clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno -fno-plt -mtune=cascadelake -g $^ $(BENCHLINK) -lm -o $@ -fft.o: fft-opt.ll $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a - clang++ $(BENCH) -pthread -O2 $^ -o $@ $(BENCHLINK) -lpthread -lm -L /usr/lib/gcc/x86_64-linux-gnu/11 - #clang++ $(LOAD) $(BENCH) fft.cpp -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o fft.o -lpthread $(BENCHLINK) -lm -L /usr/lib/gcc/x86_64-linux-gnu/11 - -results.json: fft.o - ./$^ 1048576 | tee $@ +results.json: fft.o fftr.o + numactl -C 1 ./fft.o 1048576 | tee results.json + numactl -C 1 ./fftr.o 1048576 | tee resultsr.json
diff --git a/enzyme/benchmarks/ReverseMode/gmm/Makefile.make b/enzyme/benchmarks/ReverseMode/gmm/Makefile.make index 17e22dd..b59248e 100644 --- a/enzyme/benchmarks/ReverseMode/gmm/Makefile.make +++ b/enzyme/benchmarks/ReverseMode/gmm/Makefile.make
@@ -1,4 +1,4 @@ -# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B gmm-raw.ll results.json -f %s +# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s .PHONY: clean @@ -9,20 +9,10 @@ cargo +enzyme clean $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a: src/lib.rs Cargo.toml - RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm + RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm -%-unopt.ll: %.cpp - clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm - -%-raw.ll: %-unopt.ll - opt $^ $(LOAD) $(ENZYME) -o $@ -S - -%-opt.ll: %-raw.ll - opt $^ -o $@ -S - -gmm.o: gmm-opt.ll $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a - clang++ -pthread -O2 $^ -o $@ $(BENCHLINK) -lm - #clang++ $(LOADCLANG) $(BENCH) gmm.cpp -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o gmm.o -lpthread $(BENCHLINK) -lm -L /usr/lib/gcc/x86_64-linux-gnu/11 +gmm.o: gmm.cpp $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a + /home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@ results.json: gmm.o numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make index 1388a54..b3786db 100644 --- a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make +++ b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
@@ -1,4 +1,4 @@ -# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B lstm-raw.ll results.json -f %s +# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s .PHONY: clean @@ -11,17 +11,8 @@ $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a: src/lib.rs Cargo.toml RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib -%-unopt.ll: %.cpp - clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm - -%-raw.ll: %-unopt.ll - opt $^ $(LOAD) $(ENZYME) -o $@ -S - -%-opt.ll: %-raw.ll - opt $^ -o $@ -S - -lstm.o: lstm-opt.ll $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a - clang++ -pthread -O2 $^ -o $@ $(BENCHLINK) -lm +lstm.o: lstm.cpp $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a + clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@ results.json: lstm.o numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make index 87af95f..471551f 100644 --- a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make +++ b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
@@ -1,4 +1,4 @@ -# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" ENZYME="%enzyme" make -B ode-raw.ll ode-opt.ll results.json VERBOSE=1 -f %s +# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json VERBOSE=1 -f %s .PHONY: clean @@ -11,17 +11,8 @@ $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a: src/lib.rs Cargo.toml RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib -%-unopt.ll: %.cpp - clang++ $(BENCH) $(PTR) $^ -O2 -fno-use-cxa-atexit -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm - -%-raw.ll: %-unopt.ll - opt $^ $(LOAD) $(ENZYME) -o $@ -S - -%-opt.ll: %-raw.ll - opt $^ -o $@ -S - -ode.o: ode-opt.ll $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a - clang++ $(BENCH) -O2 $^ -o $@ $(BENCHLINK) +ode.o: ode.cpp $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a + /home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@ results.json: ode.o numactl -C 1 ./$^ 1000 | tee $@
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp b/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp index 17007c8..28971e9 100644 --- a/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp +++ b/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp
@@ -708,7 +708,7 @@ rust_lorenz_safe(x, x2, t); gettimeofday(&end, NULL); - printf("Rust fwd safe %0.6f res=%f\n\n", tdiff(&start, &end), x2[0]); + printf("Rust fwd safe %0.6f res=%f\n", tdiff(&start, &end), x2[0]); } {
diff --git a/enzyme/benchmarks/lit.site.cfg.py.in b/enzyme/benchmarks/lit.site.cfg.py.in index adfac5c..297112f 100644 --- a/enzyme/benchmarks/lit.site.cfg.py.in +++ b/enzyme/benchmarks/lit.site.cfg.py.in
@@ -97,7 +97,7 @@ + ' -Xclang -load -Xclang @ENZYME_BINARY_DIR@/Enzyme/ClangEnzyme-' + config.llvm_ver + config.llvm_shlib_ext) config.substitutions.append(('%newLoadClangEnzyme', newPM)) -config.substitutions.append(('%LoadClangEnzyme', newPM)) +config.substitutions.append(('%loadClangEnzyme', newPM)) # Let the main config do the real work. lit_config.load_config(config, "@ENZYME_SOURCE_DIR@/benchmarks/lit.cfg.py")