Skip to content
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

Add GitHub actions to test build on various architectures. #214

Merged
merged 33 commits into from
Feb 14, 2024

Conversation

bredelings
Copy link
Contributor

@bredelings bredelings commented Feb 14, 2024

This PR follows the previous one. The first few commits are from the previous PR.

The PR:

  • adds a github actions file to build beagle on linux/gcc, linux/clang, mac/intel, mac/arm, and windows. The windows build uses gcc to compile instead of MSVC.
  • fixes some compile errors on windows
  • eliminates some GCC compiler warnings
  • avoids allocation N^3 RAM for eigenvalue decomposition when using action
  • changes feature flags to long long.

One tricky thing was that the sizes of int, long int, and long long int are different on mac, linux, and windows.

  • int is 64-bit on mac, but 32-bit on linux and windows
  • long int is 64-bit on mac and linux, but 32-bit on windows
  • long long int is 64-bit everywhere.

@xji3 added a new feature flag BEAGLE_FLAG_COMPUTATION_ACTION at bit 40. So this means that we need a 64-bit flags object. No change was necessary on Mac, but windows needed long long. I suspect that this would need a version bump, as it is an API change on Mac, and an ABI change on Linux and Windows.

Since I don't actually have a Mac or Windows machine, I am hoping that using github actions tests can help me avoid breaking other architectures. I'm not sure what kind of tests people would like, so please let me know.

Thoughts? (I am happy to change or reorganize things if people don't like the way I did it.)

We need to be searching relative to the location of libhmsbeagle.so

When using libhmsbeagle.so in the build directory, we need to explicitly
search the CPU, GPU, and JNI subdirs.
We need to be searching relative to the location of libhmsbeagle.so

When using libhmsbeagle.so in the build directory, we need to explicitly
search the CPU, GPU, and JNI subdirs.
Avoid converting thisS to int until we have to.
Its possible that the value is larger than INT_MAX.
Fix problem computing m and s on Linux
Exception specifications were deprecated in C++11 and removed in C++17.
@xji3
Copy link
Member

xji3 commented Feb 14, 2024

@bredelings I don't have real (good) comments but I want to appreciate your work. These are great fixes and improvements for action and the general beagle (we have been struggling with the flags recently ever since it exceeds 32..).

@xji3 xji3 merged commit 2345cf0 into beagle-dev:action Feb 14, 2024
7 checks passed
@bredelings bredelings deleted the github-actions branch March 19, 2024 21:37
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.

2 participants