summaryrefslogtreecommitdiffstats
path: root/WhisperNet/API/eModelImplementation.cs
blob: a0e61fb3ac4c19f9f261dcd911e5d6392f65663d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace Whisper
{
	/// <summary>Implementation value for the <see cref="Library.loadModel(string, eGpuModelFlags, eModelImplementation)" /> factory function</summary>
	public enum eModelImplementation: uint
	{
		/// <summary>GPGPU implementation based on Direct3D 11.0 compute shaders</summary>
		GPU = 1,

		/// <summary>A hybrid implementation which uses DirectCompute for encode, and decodes on CPU</summary>
		/// <remarks>
		/// <para>The build of the native DLL included into this nuget package doesn’t implement this version.<br/>
		/// To enable, edit <c>stdafx.h</c> in Whisper project, change the value of <c>BUILD_HYBRID_VERSION</c> macro from zero to one, and build.</para>
		/// <para>This implementation requires a CPU with AVX1, FMA3, F16C and BMI1 instruction set extensions.</para>
		/// </remarks>
		Hybrid = 2,

		/// <summary>A reference implementation which uses the original GGML CPU-running code.</summary>
		/// <remarks>
		/// <para>The build of the native DLL included into this nuget package doesn’t implement this version either.<br/>
		/// To enable, edit <c>stdafx.h</c> in Whisper project, change the value of <c>BUILD_BOTH_VERSIONS</c> macro from zero to one, and build the project.</para>
		/// <para>This implementation requires a CPU with AVX1, FMA3, and F16C instruction set extensions.</para>
		/// </remarks>
		Reference = 3,
	}
}