mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-27 03:44:35 +00:00
imatrix : use FMA and sort tensor names
This commit is contained in:
parent
3ad0603c65
commit
d19101c9a0
@ -156,7 +156,7 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void *
|
|||||||
e.counts[ex]++;
|
e.counts[ex]++;
|
||||||
|
|
||||||
for (int j = 0; j < (int)src1->ne[0]; ++j) {
|
for (int j = 0; j < (int)src1->ne[0]; ++j) {
|
||||||
e.values[e_start + j] += x[j]*x[j];
|
e.values[e_start + j] = std::fma(x[j], x[j], e.values[e_start + j]);
|
||||||
if (!std::isfinite((float)e.values[e_start + j])) {
|
if (!std::isfinite((float)e.values[e_start + j])) {
|
||||||
fprintf(stderr, "%f detected in %s\n", (float)e.values[e_start + j], wname.c_str());
|
fprintf(stderr, "%f detected in %s\n", (float)e.values[e_start + j], wname.c_str());
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -198,7 +198,7 @@ bool IMatrixCollector::collect_imatrix(struct ggml_tensor * t, bool ask, void *
|
|||||||
const float * x = data + row * src1->ne[0];
|
const float * x = data + row * src1->ne[0];
|
||||||
e.counts[0]++;
|
e.counts[0]++;
|
||||||
for (int j = 0; j < (int)src1->ne[0]; ++j) {
|
for (int j = 0; j < (int)src1->ne[0]; ++j) {
|
||||||
e.values[j] += x[j]*x[j];
|
e.values[j] = std::fma(x[j], x[j], e.values[j]);
|
||||||
if (!std::isfinite((float)e.values[j])) {
|
if (!std::isfinite((float)e.values[j])) {
|
||||||
fprintf(stderr, "%f detected in %s\n", (float)e.values[j], wname.c_str());
|
fprintf(stderr, "%f detected in %s\n", (float)e.values[j], wname.c_str());
|
||||||
exit(1);
|
exit(1);
|
||||||
@ -279,6 +279,9 @@ void IMatrixCollector::save_imatrix(int32_t n_chunk) const {
|
|||||||
fprintf(stderr, "%s: warning: storing only %zu out of %zu entries\n", __func__, to_store.size(), m_stats.size());
|
fprintf(stderr, "%s: warning: storing only %zu out of %zu entries\n", __func__, to_store.size(), m_stats.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deterministic tensor name order
|
||||||
|
std::sort(to_store.begin(), to_store.end());
|
||||||
|
|
||||||
struct ggml_init_params params = {
|
struct ggml_init_params params = {
|
||||||
.mem_size = data_size,
|
.mem_size = data_size,
|
||||||
.mem_buffer = NULL,
|
.mem_buffer = NULL,
|
||||||
|
Loading…
Reference in New Issue
Block a user