把一个 70B 模型某一层的 K、V 张量转置一下。按教科书里学到的那套理解,这一步要搬动几百兆字节的显存——一个[128, 8192]的矩阵转成[8192, 128],每个元素都得挪到新位置,访存量是张量大小的两倍。可是在 llama.cpp 里,ggml_transpose的全部函数体只做一件事:交换两个数字。structggml_tensor*ggml_transpose(structggml_context*ctx,structggml_tensor*a
转置一个 70B 模型的 KV 确实不花一分钱,但为什么一碰矩阵乘法就当场崩溃?
把一个 70B 模型某一层的 K、V 张量转置一下。按教科书里学到的那套理解,这一步要搬动几百兆字节的显存——一个[128, 8192]的矩阵转成[8192, 128],每个元素都得挪到新位置,访存量是张量大小的两倍。可是在 llama.cpp 里,ggml_transpose的全部函数体只做一件事:交换两个数字。structggml_tensor*ggml_transpose(structggml_context*ctx,structggml_tensor*a