| 171 | |
| 172 | LLAMA_ATTRIBUTE_FORMAT(1, 2) |
| 173 | static std::string format(const char * fmt, ...) { |
| 174 | va_list ap; |
| 175 | va_list ap2; |
| 176 | va_start(ap, fmt); |
| 177 | va_copy(ap2, ap); |
| 178 | int size = vsnprintf(NULL, 0, fmt, ap); |
| 179 | GGML_ASSERT(size >= 0 && size < INT_MAX); // NOLINT |
| 180 | std::vector<char> buf(size + 1); |
| 181 | int size2 = vsnprintf(buf.data(), size + 1, fmt, ap2); |
| 182 | GGML_ASSERT(size2 == size); |
| 183 | va_end(ap2); |
| 184 | va_end(ap); |
| 185 | return std::string(buf.data(), size); |
| 186 | } |
| 187 | |
| 188 | static size_t llama_set_vram_budget(double budget_gb, int gpu_device) { |
| 189 | #if defined(GGML_USE_CUBLAS) |
no test coverage detected