Skip to content

Add CircleCI#855

Merged
devinamatthews merged 26 commits intomasterfrom
circleci
Feb 8, 2025
Merged

Add CircleCI#855
devinamatthews merged 26 commits intomasterfrom
circleci

Conversation

@devinamatthews
Copy link
Copy Markdown
Member

Details:

  • This PR adds CircleCI testing in addition to TravisCI and Appveyor.
  • All of the same tests as on Travis are run, except that different hardware typically ends up being used (usually Zen on Travis, Xeon Platinum on Circle). This has actually exposed a couple of bugs (see Temporary C microtile is too small sometimes #850 and NaN encountered in SKX ztrsm (no 1m) #852).
  • The travis directory has been renamed to ci as it is now shared.
  • Running SDE on CircleCI is a bit problematic because glibc changed how CPUID detection is done. This requires running some architectures with different hardware definition files and forcing a config via BLIS_ARCH_TYPE.

Details:
- See #850 for details on the problem.
- This is a temporary fix which should work for sdcz data types.
- Altra architectures may still not fully work for MP/MD as the stack buffer size is hard-coded.
Details:
- clang 14.0.0 apparently makes some invalid assumptions about whether
  or not the AB microtile is initialized in the `gemm` reference
  microkernel. This leads to the "scale by alpha" part doing something
  strange (all sorts of random and even NaN values pop up). I do not
  know why this only manifested for `ztrsm` on `skx` (in
  `zgemm_skx_ref` via `zgemmtrsm_skx_ref`). See #852.
- Aliasing the AB microtile (in the proper datatype) as a pointer to
  a raw character array, and then initializing the character array
  with `= { 0 }` convinces the compiler to do the right thing.
- The problem did not occur in 14.0.6 or 15.0.7. It may only be a narrow
  band of versions which are problematic.
- This commit adds the char array workaround and fixes #852.
This reverts commit e09c9fb.
@devinamatthews devinamatthews merged commit 40a52dc into master Feb 8, 2025
@devinamatthews devinamatthews deleted the circleci branch February 8, 2025 19:47
devinamatthews added a commit that referenced this pull request Jun 7, 2025
Details:
- This PR adds CircleCI testing in addition to TravisCI and Appveyor.
- All of the same tests as on Travis are run, except that different hardware typically ends up being used (usually Zen on Travis, Xeon Platinum on Circle). This has actually exposed a couple of bugs (see #850 and #852).
- The `travis` directory has been renamed to `ci` as it is now shared.
- Running SDE on CircleCI is a bit problematic because glibc changed how CPUID detection is done. This requires running some architectures with different hardware definition files and forcing a config via `BLIS_ARCH_TYPE`.

(cherry picked from commit 40a52dc)
devinamatthews added a commit that referenced this pull request Jun 7, 2025
Details:
- This PR adds CircleCI testing in addition to TravisCI and Appveyor.
- All of the same tests as on Travis are run, except that different hardware typically ends up being used (usually Zen on Travis, Xeon Platinum on Circle). This has actually exposed a couple of bugs (see #850 and #852).
- The `travis` directory has been renamed to `ci` as it is now shared.
- Running SDE on CircleCI is a bit problematic because glibc changed how CPUID detection is done. This requires running some architectures with different hardware definition files and forcing a config via `BLIS_ARCH_TYPE`.

(cherry picked from commit 40a52dc)
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