diff options
| author | Konstantin <const@const.me> | 2023-01-16 14:52:43 +0100 |
|---|---|---|
| committer | Konstantin <const@const.me> | 2023-01-16 14:52:43 +0100 |
| commit | 8c4603c73675958efc960fbd4bb599a2909d106a (patch) | |
| tree | 714dc6fc9a1672d5fd7f89676b97e10959662abc /Whisper/Utils/Trace/TraceStructures.cpp | |
| parent | 990a8d0dbaefc996244097397259e92758b15cce (diff) | |
Source codes
Diffstat (limited to 'Whisper/Utils/Trace/TraceStructures.cpp')
| -rw-r--r-- | Whisper/Utils/Trace/TraceStructures.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Whisper/Utils/Trace/TraceStructures.cpp b/Whisper/Utils/Trace/TraceStructures.cpp new file mode 100644 index 0000000..289a534 --- /dev/null +++ b/Whisper/Utils/Trace/TraceStructures.cpp @@ -0,0 +1,31 @@ +#include "stdafx.h" +#include "TraceStructures.h" +using namespace Tracing; + +uint64_t sTraceItem::buffer( uint64_t off, size_t length, eDataType type ) +{ + payloadOffset = off; + payloadSize = length * DirectCompute::elementSize( type ); + *(uint64_t*)( &size[ 0 ] ) = length; + *(uint64_t*)( &size[ 2 ] ) = 0; + _mm_storeu_si128( ( __m128i* )stride.data(), _mm_setzero_si128() ); + itemType = eItemType::Buffer; + dataType = type; + return payloadSize; +} + +uint64_t sTraceItem::tensor( uint64_t off, __m128i ne, __m128i nb, eDataType type ) +{ + payloadOffset = off; + _mm_storeu_si128( ( __m128i* )size.data(), ne ); + _mm_storeu_si128( ( __m128i* )stride.data(), nb ); + uint64_t count = 1; + for( uint32_t i : size ) + if( i != 0 ) + count *= i; + + payloadSize = count * DirectCompute::elementSize( type ); + itemType = eItemType::Tensor; + dataType = type; + return payloadSize; +}
\ No newline at end of file |
