EnzymeAD / EnzymeAD/Enzyme

Attributor adds infinite alignment in intermediate function

Open
#401 5 comments 0 reactions 1 assignee Claimed by @wsmoses View on GitHub
bug
Dominant language
LLVM
Stars
1.7k
Forks
188
Avg merge
2d 4h
Merged PRs (30d)
22

Description

here's a repo of the reproducer:

https://github.com/samuelpmish/neohookean_enzyme_test/tree/6a6cff7ec7eddc258959ea84613fd3c462576231

To summarize: compiling this example project with the flags `-fno-vectorize -fno-unroll-loops` on the M1 mac seems to make the executable segfault on the first call to `__enzyme_autodiff`. Adding those same flags to the Ubuntu 20.04 build does not result in a segfault (but the code is considerably slower!).

the script `build.sh` has the specific compilation commands I've tested on an M1 mac and an x86_64 Ubuntu 20.04 machine.

potentially relevant information about the mac:

it uses enzyme 0.0.25 installed through homebrew
```
sam@Sams-Air neohookean_test_enzyme % brew info enzyme
enzyme: stable 0.0.25 (bottled), HEAD
High-performance automatic differentiation of LLVM
https://enzyme.mit.edu
/opt/homebrew/Cellar/enzyme/0.0.25 (9 files, 5.6MB) *
Poured from bottle on 2021-12-15 at 09:50:19
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/enzyme.rb
License: Apache-2.0 with LLVM-exception
==> Dependencies
Build: cmake ✘
Required: llvm ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 61 (30 days), 180 (90 days), 423 (365 days)
install-on-request: 61 (30 days), 180 (90 days), 423 (365 days)
build-error: 0 (30 days)
```

it uses the clang compiler installed by homebrew as part of enzyme's dependencies
```
sam@Sams-Air neohookean_test_enzyme % echo $CXX
/opt/homebrew/Cellar/llvm/13.0.0_2/bin/clang++
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.