CANN: Add x86 build ci (llama/12950)

* CANN: Add x86 build ci

* CANN: fix code format
This commit is contained in:
hipudding 2025-04-15 19:08:55 +08:00 committed by Georgi Gerganov
parent 43e3d25d93
commit 483eecae62

View File

@ -258,7 +258,7 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
if (margin <= max_reuse_margin) { if (margin <= max_reuse_margin) {
*actual_size = b.size; *actual_size = b.size;
ptr = b.ptr; ptr = b.ptr;
#ifdef DEBUG_CANN_MALLOC #ifdef DEBUG_CANN_MALLOC
GGML_LOG_INFO( GGML_LOG_INFO(
"cann pool[%d]: reused %p, " "cann pool[%d]: reused %p, "
"pool_size = %5u MB, " "pool_size = %5u MB, "
@ -268,7 +268,7 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
(uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576), (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576),
(uint32_t)(GGML_PAD(size, 1048576) / 1048576), (uint32_t)(GGML_PAD(size, 1048576) / 1048576),
(uint32_t)(GGML_PAD(margin, 1048576) / 1048576)); (uint32_t)(GGML_PAD(margin, 1048576) / 1048576));
#endif #endif
break; break;
} }
} }
@ -281,7 +281,7 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
ACL_CHECK(aclrtFree(b.ptr)); ACL_CHECK(aclrtFree(b.ptr));
pool_size -= b.size; pool_size -= b.size;
buffer_pool.erase(b.ptr); buffer_pool.erase(b.ptr);
#ifdef DEBUG_CANN_MALLOC #ifdef DEBUG_CANN_MALLOC
GGML_LOG_INFO( GGML_LOG_INFO(
"cann pool[%d]: clean %p, " "cann pool[%d]: clean %p, "
"pool_size = %5u MB, " "pool_size = %5u MB, "
@ -289,7 +289,7 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
device, b.ptr, device, b.ptr,
(uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576), (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576),
(uint32_t)(GGML_PAD(b.size, 1048576) / 1048576)); (uint32_t)(GGML_PAD(b.size, 1048576) / 1048576));
#endif #endif
continue; continue;
} }
free_buffers_rest.push_back(b); free_buffers_rest.push_back(b);
@ -298,9 +298,9 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
free_buffers.push(std::move(b)); free_buffers.push(std::move(b));
} }
#ifdef DEBUG_CANN_MALLOC #ifdef DEBUG_CANN_MALLOC
GGML_LOG_INFO("cann pool[%d] free pool_size = %5u MB\n\n", device, (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576)); GGML_LOG_INFO("cann pool[%d] free pool_size = %5u MB\n\n", device, (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576));
#endif #endif
if (ptr != nullptr) { if (ptr != nullptr) {
return ptr; return ptr;
} }
@ -310,14 +310,14 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
ACL_CHECK(aclrtMalloc(&ptr, size, ACL_MEM_MALLOC_HUGE_FIRST)); ACL_CHECK(aclrtMalloc(&ptr, size, ACL_MEM_MALLOC_HUGE_FIRST));
*actual_size = size; *actual_size = size;
pool_size += size; pool_size += size;
#ifdef DEBUG_CANN_MALLOC #ifdef DEBUG_CANN_MALLOC
GGML_LOG_INFO( GGML_LOG_INFO(
"cann pool[%d]: allocate %p, " "cann pool[%d]: allocate %p, "
"pool_size = %5u MB, " "pool_size = %5u MB, "
"size = %5u MB\n", "size = %5u MB\n",
device, ptr, (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576), device, ptr, (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576),
(uint32_t)(GGML_PAD(size, 1048576) / 1048576)); (uint32_t)(GGML_PAD(size, 1048576) / 1048576));
#endif #endif
buffer_pool.emplace(ptr, size); buffer_pool.emplace(ptr, size);
return ptr; return ptr;
} }
@ -329,6 +329,7 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
* @param size Size of the buffer to free. * @param size Size of the buffer to free.
*/ */
void free(void* ptr, size_t size) override { void free(void* ptr, size_t size) override {
GGML_UNUSED(size);
auto it = buffer_pool.find(ptr); auto it = buffer_pool.find(ptr);
if (it == buffer_pool.end()) { if (it == buffer_pool.end()) {
GGML_ABORT("cann pool[%d]: buffer %p not found in pool\n", device, ptr); GGML_ABORT("cann pool[%d]: buffer %p not found in pool\n", device, ptr);
@ -336,15 +337,15 @@ struct ggml_cann_pool_buf_prio : public ggml_cann_pool {
auto now = std::chrono::steady_clock::now(); auto now = std::chrono::steady_clock::now();
free_buffers.emplace(ggml_cann_buffer{ptr, it->second, now}); free_buffers.emplace(ggml_cann_buffer{ptr, it->second, now});
#ifdef DEBUG_CANN_MALLOC #ifdef DEBUG_CANN_MALLOC
GGML_LOG_INFO( GGML_LOG_INFO(
"cann pool[%d]: return %p, " "cann pool[%d]: return %p, "
"pool_size = %5u MB\n", "pool_size = %5u MB\n",
device, ptr, device, ptr,
(uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576)); (uint32_t)(GGML_PAD(pool_size, 1048576) / 1048576));
#endif #endif
} }
}; };
/** /**
* @brief A pool of CANN buffers(segment buffer). * @brief A pool of CANN buffers(segment buffer).
@ -531,6 +532,7 @@ struct ggml_cann_pool_buf : public ggml_cann_pool {
* @param size Size of the buffer to free. * @param size Size of the buffer to free.
*/ */
void free(void* ptr, size_t size) override { void free(void* ptr, size_t size) override {
GGML_UNUSED(size);
for (int i = 0; i < MAX_BUFFERS; ++i) { for (int i = 0; i < MAX_BUFFERS; ++i) {
ggml_cann_buffer& b = buffer_pool[i]; ggml_cann_buffer& b = buffer_pool[i];
if (b.ptr != ptr) { if (b.ptr != ptr) {