-
Notifications
You must be signed in to change notification settings - Fork 44
Transition to GLM #101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Transition to GLM #101
Conversation
|
@jmaack24 Bill suggested I ping you on this PR. This is a pretty large PR, so please let me know if I've messed something up. |
|
A few tests failing here that didn't fail on my hardware. Looks like the debug ones are duration; that's expected due to the slow performance of GLM in debug mode. The release ones are failing from uninitialization, which I thought I had fixed, but I'll get that fixed up soon enough. |
This hefty PR strips out the custom linear algebra library and replaces it with GLM, a fairly popular and high performance library. This is the first step toward using quaternions instead of a vector and rotation for user-facing simulation_data classes, as discussed with @qualand (Bill).
Aside from allowing some more traditional syntax, GLM improves the performance by around 10% on my machines, and opens the door to using AVX instructions explicitly for additional gains. However: debug builds perform slower, in some cases twice as slow due to the indirection GLM needs to provide platform specific optimizations.
This is a draft as the Optix test is crashing, but I'm not yet sure if it's my fault or not.
Changes:
Notes:
variable = a * v + b * yis_infaster; this could be done for all apertures