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 "TraceReader.h" 3using namespace Tracing ; 4 5const sTraceItem & TraceReader ::operator[](size_t idx )const 6{ 7if (idx >=countItems ) 8throw E_BOUNDS ; 9return items [idx ]; 10} 11 12CStringA TraceReader ::getName (const sTraceItem & item )const 13{ 14const size_t idx = item .stringIndex ; 15if (idx >=countStrings ) 16throw E_BOUNDS ; 17const char * const source = stringData + stringIndex [idx ]; 18CStringA res ; 19res .Format (source ,item .formatArgs [0 ],item .formatArgs [1 ],item .formatArgs [2 ],item .formatArgs [3 ] ); 20return res ; 21} 22 23HRESULT TraceReader ::open (LPCTSTR path ) 24{ 25CHECK (file .Create (path ,GENERIC_READ ,FILE_SHARE_READ ,OPEN_EXISTING ) ); 26CHECK (mapping .MapFile (file ) ); 27 28const uint8_t * rsi = mapping ; 29const sFileHeader & header = * (const sFileHeader * )rsi ; 30if (header .magic != header .correctMagic ) 31return E_INVALIDARG ; 32countItems = header .countItems ; 33countStrings = header .countStrings ; 34 35rsi += sizeof (sFileHeader ); 36payloadPointer = rsi ; 37 38rsi += header .bytesPayload ; 39stringIndex = (const uint32_t * )(rsi ); 40stringData = (const char * )(rsi + countStrings * 4 ); 41 42rsi += header .bytesStrings ; 43items = (const sTraceItem * )rsi ; 44 45return S_OK ; 46}