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, } }