break;
}
lock.unlock();
- const double v = log_softmax(n_vocab, logits + size_t(i)*n_vocab, log_probs.data() + i*nv, tokens[i+1]);
+ const double v = log_softmax(n_vocab, logits + size_t(i)*n_vocab, log_probs.data() + size_t(i)*nv, tokens[i+1]);
local_nll += v;
local_nll2 += v*v;
}
for (auto & w : workers) {
w.join();
}
- out.write((const char *)log_probs.data(), n_token*nv*sizeof(uint16_t));
+ out.write((const char *)log_probs.data(), size_t(n_token)*nv*sizeof(uint16_t));
}
struct kl_divergence_result {
break;
}
lock.unlock();
- std::pair<double, float> v = log_softmax(n_vocab, logits + size_t(i)*n_vocab, base_log_probs.data() + i*nv, tokens[i+1], local_kld);
+ std::pair<double, float> v = log_softmax(n_vocab, logits + size_t(i)*n_vocab, base_log_probs.data() + size_t(i)*nv, tokens[i+1], local_kld);
kld_values[i] = (float)v.first;
p_diff_values[i] = v.second;
}