namespace LLama.Native
{
///
/// Information of a native library file.
///
/// Which kind of library it is.
/// Whether it's compiled with cublas.
/// Which AvxLevel it's compiled with.
public record class NativeLibraryMetadata(NativeLibraryName NativeLibraryName, bool UseCuda, AvxLevel AvxLevel)
{
public override string ToString()
{
return $"(NativeLibraryName: {NativeLibraryName}, UseCuda: {UseCuda}, AvxLevel: {AvxLevel})";
}
}
///
/// Avx support configuration
///
public enum AvxLevel
{
///
/// No AVX
///
None,
///
/// Advanced Vector Extensions (supported by most processors after 2011)
///
Avx,
///
/// AVX2 (supported by most processors after 2013)
///
Avx2,
///
/// AVX512 (supported by some processors after 2016, not widely supported)
///
Avx512,
}
}