Pré-version / build continu : il s'agit d'un build expérimental, pas d'une version stable.
ggml : correction de la disposition du résultat de conv_1d pour les entrées par lots (#28738) * ggml : correction de la disposition du résultat de conv_1d pour les entrées par lots Le GEMM derrière conv_1d replie le lot dans ses lignes, si bien que le produit réside en mémoire sous la forme [OL, N, OC] alors que le reshape prétend [OL, OC, N]. La forme est correcte et le contenu est transposé, donc rien ne se déclenche : pas d'assert, pas d'abort, le graphe s'exécute simplement et les canaux se retrouvent entrelacés avec les lots. Avec N == 1, les deux lectures décrivent le même tampon, c'est pourquoi les trois vocodeurs de l'arborescence ne l'ont jamais rencontré : ils compriment tous en 2d juste après l'appel. Reshape vers la disposition réelle et permute OC et N en retour. Le chemin N == 1 conserve son reshape direct, de sorte que les appelants actuels construisent le même graphe et ne paient aucune copie supplémentaire. tests/test-conv-1d.cpp compare une convolution par lots à N convolutions à lot unique construites à partir du même poids et des mêmes tranches d'entrée. Cinq des sept géométries échouent avant ce changement et les sept passent après. N == 1 et OC == 1 passent dans les deux cas, puisque échanger deux dimensions quand l'une d'elles vaut 1 ne change rien. Le chemin par lots importe pour les projets audio en aval où plusieurs voies de synthèse partagent un même graphe. Rien dans mtmd ne met un vocodeur par lots aujourd'hui : chacun diffuse un seul flux et porte son contexte gauche entre les appels, mais l'opération est désormais correcte si l'un d'eux développe une dimension de voie. * ggml : construire le même graphe conv_1d pour chaque taille de lot Donner suite à la revue de ggerganov : supprimer la branche N == 1 de ggml_conv_1d. Le résultat du GEMM est toujours reshaped en [OC, N, OL] puis permuté en retour, comme le fait ggml_conv_2d, de sorte que chaque taille de lot construit le même graphe. Pour N == 1, cela ajoute un cont sur un tenseur déjà ordonné.Site Web : - https://llama.app
Attestations : - https://github.com/ggml-org/llama.cpp/attestations/56061987
macOS/iOS : - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI activé) DÉSACTIVÉ - macOS Intel (x64) - iOS XCFramework
Linux : - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - Bibliothèques CUDA 12.8 - Ubuntu x64 (CUDA 13) - Bibliothèques CUDA 13.4 - Ubuntu arm64 (CUDA 13) - Bibliothèques CUDA 13.4 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon : CPU, GPU Adreno, NPU Hexagon) - guide d'installation
Android : - Android arm64 (CPU) - Android arm64 (Snapdragon : CPU, GPU Adreno, NPU Hexagon) - guide d'installation
Windows : - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - DLLs CUDA 12.4 - Windows x64 (CUDA 13) - DLLs CUDA 13.4 - Windows arm64 (CUDA 13) - DLLs CUDA 13.4 - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0)
openEuler : - DÉSACTIVÉ - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph)
UI : - UI