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#pragma once 2#include <memory> 3#include "../../D3D/enums.h" 4 5namespace DirectCompute 6{ 7class Tensor ; 8} 9namespace CpuCompute 10{ 11class Tensor ; 12} 13 14struct ggml_tensor ; 15 16namespace Tracing 17{ 18using DirectCompute ::eDataType ; 19 20struct ItemName 21 { 22const char * pointer ; 23std ::array < uint32_t ,4 > args ; 24uint8_t countArgs ; 25 26ItemName (const char * str ) 27 { 28pointer = str ; 29_mm_storeu_si128 ( (__m128i * )args .data (),_mm_setzero_si128 () ); 30countArgs = 0 ; 31 } 32ItemName (const char * str ,int a0 ) 33 { 34pointer = str ; 35__m128i v = _mm_cvtsi32_si128 (a0 ); 36_mm_storeu_si128 ( (__m128i * )args .data (),v ); 37countArgs = 1 ; 38 } 39ItemName (const char * str ,uint32_t a0 ) 40 { 41pointer = str ; 42__m128i v = _mm_cvtsi32_si128 ( (int )a0 ); 43_mm_storeu_si128 ( (__m128i * )args .data (),v ); 44countArgs = 1 ; 45 } 46ItemName (const char * str ,size_t a0 ) 47 { 48pointer = str ; 49__m128i v = _mm_cvtsi32_si128 ( (int )a0 ); 50_mm_storeu_si128 ( (__m128i * )args .data (),v ); 51countArgs = 1 ; 52 } 53 }; 54 55class iTraceWriter 56 { 57public : 58virtual ~iTraceWriter () {} 59 60static std ::unique_ptr < iTraceWriter > create (LPCTSTR path ); 61 62virtual HRESULT buffer (const ItemName & name ,const void * rsi ,size_t length ,eDataType dt )= 0 ; 63 64virtual HRESULT tensor (const ItemName & name ,const void * rsi ,__m128i size ,__m128i strides ,eDataType dt )= 0 ; 65 66HRESULT tensor (const ItemName & name ,const DirectCompute ::Tensor & tensor ); 67HRESULT tensor (const ItemName & name ,const CpuCompute ::Tensor & tensor ); 68HRESULT tensor (const ItemName & name ,const ggml_tensor & tensor ); 69 }; 70}