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 "tracing.h" 3#include "../../source/ggml.h" 4 5#if SAVE_DEBUG_TRACE 6namespace Tracing 7{ 8 std::unique_ptr < iTraceWriter > s_writer ; 9 10static BOOL __stdcallconsoleHandler (DWORD dwCtrlType ) 11 { 12if (dwCtrlType == CTRL_C_EVENT ) 13s_writer = nullptr ; 14 15// Return TRUE if handled this message, further handler functions won't be called. 16// Return FALSE to pass this message to further handlers until default handler calls ExitProcess(). 17return FALSE; 18 } 19 20void traceCreate (LPCTSTR path ) 21 { 22s_writer = iTraceWriter::create (path ); 23SetConsoleCtrlHandler (& consoleHandler , TRUE ); 24 } 25 26void traceClose () 27 { 28s_writer = nullptr ; 29 } 30 31iTraceWriter * getWriter () 32 { 33return s_writer .get (); 34 } 35 36using Pair = std::pair < ItemName ,ggml_tensor > ; 37static std::vector < Pair > delayed ; 38 39void delayTensor (const ItemName & name ,const ggml_tensor * tensor ) 40 { 41delayed .emplace_back (name ,* tensor ); 42 } 43 44HRESULT writeDelayedTensors () 45 { 46if (delayed .empty () ) 47return S_FALSE ; 48iTraceWriter * w = getWriter (); 49if (nullptr == w ) 50 { 51delayed .clear (); 52return S_FALSE ; 53 } 54for (const Pair & p :delayed ) 55w -> tensor (p .first ,p .second ); 56delayed .clear (); 57return S_OK ; 58 } 59} 60#endif