@@ -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+
76067615static 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