用 C 语言手写 vtable?看看 llama.cpp 是如何极致榨干 CPU 缓存的

用 C 语言手写 vtable?看看 llama.cpp 是如何极致榨干 CPU 缓存的 打开ggml.c第 1781 行,你会看到一行让人困惑的赋值:/*.data =*/obj_alloc_size0?(void*)(result+1):data,一个张量的数据,居然是通过对自身指针加 1 来定位的——这意味着 ggml 把张量的元数据和数据紧挨着放在了同一块连续内存里。更反直觉的是,这个obj_alloc_size在no_a