Skip to content

Commit dca13cb

Browse files
vulkan: support memset_tensor
1 parent 0f2bbe6 commit dca13cb

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

ggml/src/ggml-vulkan/ggml-vulkan.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7603,6 +7603,15 @@ static void ggml_backend_vk_buffer_init_tensor(ggml_backend_buffer_t buffer, ggm
76037603
}
76047604
}
76057605

7606+
static void ggml_backend_vk_buffer_memset_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, uint8_t value, size_t offset, size_t size) {
7607+
VK_LOG_DEBUG("ggml_backend_vk_buffer_memset_tensor(" << buffer << ", " << tensor << ", " << value << ", " << offset << ", " << size << ")");
7608+
ggml_backend_vk_buffer_context * buf_ctx = (ggml_backend_vk_buffer_context *)buffer->context;
7609+
vk_buffer buf = buf_ctx->dev_buffer;
7610+
7611+
uint32_t val32 = (uint32_t)value * 0x01010101;
7612+
ggml_vk_buffer_memset(buf, vk_tensor_offset(tensor) + tensor->view_offs + offset, val32, size);
7613+
}
7614+
76067615
static void ggml_backend_vk_buffer_set_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, const void * data, size_t offset, size_t size) {
76077616
VK_LOG_DEBUG("ggml_backend_vk_buffer_set_tensor(" << buffer << ", " << tensor << ", " << data << ", " << offset << ", " << size << ")");
76087617
ggml_backend_vk_buffer_context * buf_ctx = (ggml_backend_vk_buffer_context *)buffer->context;
@@ -7647,7 +7656,7 @@ static ggml_backend_buffer_i ggml_backend_vk_buffer_interface = {
76477656
/* .free_buffer = */ ggml_backend_vk_buffer_free_buffer,
76487657
/* .get_base = */ ggml_backend_vk_buffer_get_base,
76497658
/* .init_tensor = */ ggml_backend_vk_buffer_init_tensor,
7650-
/* .memset_tensor = */ NULL,
7659+
/* .memset_tensor = */ ggml_backend_vk_buffer_memset_tensor,
76517660
/* .set_tensor = */ ggml_backend_vk_buffer_set_tensor,
76527661
/* .get_tensor = */ ggml_backend_vk_buffer_get_tensor,
76537662
/* .cpy_tensor = */ ggml_backend_vk_buffer_cpy_tensor,

0 commit comments

Comments
 (0)