Har väldigt svårt att tänka mig att Qualcomm använder INT4. Dels säger bl.a. presentationer av Oryon från t.ex. AnandTech detta
"Hexagon 45 TOPS (INT8)"
och Qualcomm själva skriver detta
"Precision refers to the granularity of calculations, with higher precision typically correlating with increased model accuracy at the expense of computational intensity. The most common high-precision AI models are 32-bit and 16-bit floating point, whereas faster, low-precision, low-power models typically use 8-bit and 4-bit integer precision. The current industry standard for measuring AI inference in TOPS is at INT8 precision."
Undrar om någon NPU just nu får ett teoretisk högre TOPS värde om de använder en längre kvantiseringnivå än INT8. I praktiken kan det bli lite bättre med t.ex. INT4 om flaskhalsen är RAM-bandbredd, men får känslan att <INT8 mer handlar om att få ner storleken på modeller tillräckligt mycket för att få in dem i VRAM på GPUer än att det ger högre prestanda.
Fördelen med NPUer samt iGPUer är ju att de har tillgång till lika mycket RAM som CPU-delen, vilket typiskt är mer än vad dGPUer har som VRAM.
Tvivlar också starkt på att M4 inte skulle ha högre faktiskt kapacitet i sin NPU jämfört med M3. Möjligen finns någon begränsning i M3 som gör att den har samma kapacitet både för INT8 och FP16, men det ändrar inte det Qualcomm skriver ovan: normalt refererar man till INT8 med TOPS siffran. Det gör definitivt Intel och AMD, samt vad det verkar, Qualcomm.
I fallet Apple vet jag inte hur mycket de, fram till nu i alla fall, brytt sig om NPU-delen på Mac:arna. Intels NPU har man sedan en tid kunna använda direkt i PyTorch både under Linux och Windows.
Apple har lysande PyTorch/TensorFlow stöd för deras CPU (extensioner för bättre matrisprestanda) och iGPU, men finns inget stöd alls för NPU utanför att använda deras Accelerate bibliotek (vilket nog är långt viktigare för mobiler än för MacOS).