TutkimusAvoin lähdekoodi 🇺🇸 29.07.2026 23:03

Profilointi PyTorchissa (Osa 3): Huomio on kaikki mitä profiloidaan

PyTorchPyTorch NVIDIANVIDIA
Tämä artikkeli profiloi huomiointimekanismeja PyTorchissa vertaillen naiivia huomiointia, paikan päällä tehtävää optimointia ja Scaled Dot Product Attention (SDPA) -taustajärjestelmiä. Se paljastaa, että SDPA:n matemaattinen taustajärjestelmä on hitaampi kuin naiivi huomiointi johtuen Tensor Coren vajaakäytöstä, maskin uudelleenrakennuksesta ja safe softmax -ylikuormasta.
Kolmannessa Profiling in PyTorch -sarjan kirjoituksessa profiloidaan huomiomekanismeja. Se alkaa yksinkertaisesta huomiopalikasta (matmul, skaalaus, peittäminen, softmax, matmul), ja sen jäljitys näyttää 5 GPU-ydintä per eteenpäinvaihe. Korvaamalla out-of-place-masked_fill in-place-masked_fill_-metodilla eliminoidaan muistinkopiointiydin, mikä säästää aikaa ja muistia. Seuraavaksi esitellään skaalattu pistetulohuomio (Scaled Dot Product Attention, SDPA); sen matematiikkatausta, vaikka onkin turvallisempi (käsittelee NaN-tapaukset) ja tarkempi (FP32), on 3,7 kertaa hitaampi kuin yksinkertainen huomio, koska se käynnistää 20 GPU-ydintä, ei käytä Tensor-ytimiä (käyttää sgemmiä bf16 Tensor Core -kertolaskun sijaan), rakentaa kausaalimaskin uudelleen jokaisessa kutsussa ja käyttää _safe_softmaxia. Kirjoitus huomauttaa, että SDPA valitsee normaalisti nopeimman taustajärjestelmän automaattisesti.
Lähde: Hugging Face blog — Alkuperäinen
Aiemmat aiheeseen liittyvät kirjoituksemme ↓
Tuoreet uutiset