* ggml-cpu : disable tiled matmul on AIX to fix page boundary segfault
vec_xst operations in the tiled path crash on AIX when writing
near 4KB page boundaries due to strict memory protection. Fall
back to mnpack implementation on AIX for stable execution.
Signed-off-by: Shalini Salomi Bodapati <redacted>
* Update ggml/src/ggml-cpu/llamafile/sgemm.cpp
Co-authored-by: Aaron Teo <redacted>
* Update sgemm.cpp
* Update sgemm.cpp
---------
Signed-off-by: Shalini Salomi Bodapati <redacted>
Co-authored-by: Aaron Teo <redacted>
}
void matmul(int64_t m, int64_t n) {
+ #if defined(_AIX) || defined(__BIG_ENDIAN__)
+ mnpack(0, m, 0, n);
+ #else
const int64_t mc = 64;
const int64_t kc = 64;
int64_t nc = 64;
} else {
n_aligned = (n / 64) * 64;
}
-
if (n_aligned > 0) {
if (n_aligned % 64 == 0) nc = 64;
else if (n_aligned == n) nc = n;
} else {
mnpack(0, m, 0, n);
}
+ #endif
}
private:
}
void matmul(int64_t m, int64_t n) {
+ #if defined(_AIX) || defined(__BIG_ENDIAN__)
+ mnpack(0, m, 0, n);
+ #else
int64_t mc = 256; int64_t nc = 256; int64_t kc = 256;
if (m % mc == 0 && n % nc == 0 && k % kc == 0) {
matmul_tiled(m, n, mc, nc, kc);
} else {
mnpack(0, m, 0, n);
}
+ #endif
}
private: