}
}
- for (int i = 0; i < (int) embd.size(); i += params.n_batch) {
- int n_eval = (int) embd.size() - i;
- if (n_eval > params.n_batch) {
- n_eval = params.n_batch;
- }
-
+ if (!embd.empty()) {
+ int n_eval = (int) embd.size();
LOG_DBG("eval: %s\n", string_from(ctx, embd).c_str());
- if (llama_decode(ctx, llama_batch_get_one(&embd[i], n_eval))) {
+ GGML_ASSERT(n_eval <= params.n_batch);
+ if (llama_decode(ctx, llama_batch_get_one(embd.data(), n_eval))) {
LOG_ERR("%s : failed to eval\n", __func__);
return 1;
}
common_sampler_accept(smpl, embd_inp[n_consumed], /* accept_grammar= */ false);
++n_consumed;
- if ((int) embd.size() >= params.n_batch) {
+ if ((int) embd.size() == params.n_batch) {
break;
}
}