Skip to content

Test Enzyme gradient on AD fixture#44

Open
krystophny wants to merge 17 commits into
developfrom
ad-10f-enzyme-ad-fixture-gradient
Open

Test Enzyme gradient on AD fixture#44
krystophny wants to merge 17 commits into
developfrom
ad-10f-enzyme-ad-fixture-gradient

Conversation

@krystophny

Copy link
Copy Markdown
Member

Summary

  • Add gvec_enzyme_ad_fixture_gradient, an Enzyme test that initializes the low-resolution AD fixture outside the differentiated region.
  • Pass the exported fixed-RZ flat-kernel context as inactive Enzyme inputs and differentiate only q.
  • Compare the Enzyme dW/dq against centered finite differences for all fixture q entries.

Verification

Test fails before this PR

ENZYME_PLUGIN_DIR=<LLVM Enzyme plugin dir> cmake -S . -B /tmp/gvec-enzyme-ad10f-before -G Ninja -DCMAKE_Fortran_COMPILER=flang-new -DCMAKE_BUILD_TYPE=Release -DGVEC_FIX_HMAP=RZ -DUSE_OPENMP=OFF -DLINK_GVEC_TO_NETCDF=OFF -DUSE_ENZYME=ON
cmake --build /tmp/gvec-enzyme-ad10f-before --target gvec_enzyme_ad_fixture_gradient -j$(nproc)

ninja: error: unknown target 'gvec_enzyme_ad_fixture_gradient'

Test passes after fix

ENZYME_PLUGIN_DIR=<LLVM Enzyme plugin dir> cmake -S . -B /tmp/gvec-enzyme-ad10f -G Ninja -DCMAKE_Fortran_COMPILER=flang-new -DCMAKE_BUILD_TYPE=Release -DGVEC_FIX_HMAP=RZ -DUSE_OPENMP=OFF -DLINK_GVEC_TO_NETCDF=OFF -DUSE_ENZYME=ON
cmake --build /tmp/gvec-enzyme-ad10f --target gvec_enzyme_smoke gvec_enzyme_array_gradient gvec_enzyme_rz_flat_gradient gvec_enzyme_gvec_module_smoke gvec_enzyme_ad_fixture_gradient -j$(nproc)
ctest --test-dir /tmp/gvec-enzyme-ad10f -R 'gvec_enzyme_(smoke|array_gradient|rz_flat_gradient|gvec_module_smoke|ad_fixture_gradient)' --output-on-failure

100% tests passed, 0 tests failed out of 5
ENZYME_PLUGIN_DIR=<LLVM Enzyme plugin dir> cmake -S . -B /tmp/gvec-enzyme-ad10f-nogvec -G Ninja -DCMAKE_Fortran_COMPILER=flang-new -DCMAKE_BUILD_TYPE=Release -DCOMPILE_GVEC=OFF -DCOMPILE_SRC_PYGVEC=OFF -DLINK_GVEC_TO_NETCDF=OFF -DUSE_OPENMP=OFF -DUSE_ENZYME=ON
cmake --build /tmp/gvec-enzyme-ad10f-nogvec --target gvec_enzyme_smoke gvec_enzyme_array_gradient gvec_enzyme_rz_flat_gradient gvec_enzyme_gvec_module_smoke -j$(nproc)
ctest --test-dir /tmp/gvec-enzyme-ad10f-nogvec -R 'gvec_enzyme_(smoke|array_gradient|rz_flat_gradient|gvec_module_smoke)' --output-on-failure

100% tests passed, 0 tests failed out of 4
cmake -S . -B /tmp/gvec-build-ad10f -G Ninja -DCMAKE_BUILD_TYPE=Release -DGVEC_FIX_HMAP=RZ -DUSE_OPENMP=OFF -DLINK_GVEC_TO_NETCDF=OFF
cmake --build /tmp/gvec-build-ad10f -j$(nproc)

SUCCESS: GVEC BUILD COMPLETE!
SUCCESS: GVEC_POST BUILD COMPLETE!
git diff --check -- CMakeLists.txt test-CI/enzyme/gvec_enzyme_ad_fixture_gradient.F90
# no output

fo
fo: no Fortran project detected

@krystophny krystophny force-pushed the ad-10f-enzyme-ad-fixture-gradient branch from 455b2fb to 92674e4 Compare July 9, 2026 20:01
@krystophny krystophny force-pushed the ad-10f-enzyme-ad-fixture-gradient branch from 92674e4 to 74123af Compare July 9, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant