yum-archive/TaSTT-Whisper
High-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model
git clone https://git.yummers.dev/yum-archive/TaSTT-Whisper
8c4603c
master
1#include "stdafx.h" 2#include "mulMat.h" 3#include "mulMatImpl.h" 4using namespace CpuCompute ; 5 6namespace 7{ 8template < uint8_t panelHeightRegs ,uint8_t tileWidthFloats > 9static HRESULT mulMatImpl (Tensor & result ,const Tensor & a ,const Tensor & b ,ParallelForRunner & pfor ) 10 { 11MulMatImpl < panelHeightRegs ,tileWidthFloats > impl {result ,a ,b ,pfor }; 12return impl .run (pfor ); 13 } 14} 15 16HRESULT CpuCompute ::mulMat (Tensor & result ,const Tensor & a ,const Tensor & b ,ParallelForRunner & pfor ) 17{ 18if (a .type ()!= eDataType::FP16 ) 19return E_NOTIMPL ; 20if (b .type ()!= eDataType::FP32 ) 21return E_NOTIMPL ; 22 23// return mulMatImpl<1, 1>( result, a, b, pfor ); 24 25if (b .ne [1 ]== 1 ) 26 { 27// Multiplying by a single row 28if (a .ne [1 ] >=32 ) 29return mulMatImpl < 4 ,1 > (result ,a ,b ,pfor ); 30else 31return mulMatImpl < 1 ,1 > (result ,a ,b ,pfor ); 32 } 33else if (b .ne [1 ]== 2 ) 34 { 35if (a .ne [1 ] >=32 ) 36return mulMatImpl < 4 ,2 > (result ,a ,b ,pfor ); 37else 38return mulMatImpl < 1 ,2 > (result ,a ,b ,pfor ); 39 } 40else if (b .ne [1 ]== 3 ) 41 { 42if (a .ne [1 ] >=16 ) 43return mulMatImpl < 2 ,3 > (result ,a ,b ,pfor ); 44else 45return mulMatImpl < 1 ,3 > (result ,a ,b ,pfor ); 46 } 47else 48 { 49if (a .ne [1 ] >=16 ) 50return mulMatImpl < 2 ,4 > (result ,a ,b ,pfor ); 51else 52return mulMatImpl < 1 ,4 > (result ,a ,b ,pfor ); 53 } 54}