Что: 4d972086d9ed30deb933c419e5e9d727a45290ab
Когда: 2023-08-26 11:42:56+03:00
Темы: go tip
Поддерживаемые команды CPU В 93a94460359f21b284080d1a1b4be8dcea26c4bd упоминал cpuc утилиту, которая красиво выводит список расширенных инструкций процессора. А то прежде я знал только способ в виде чтения dmesg-а, рассказывающий про процессор. В новом Xeon (9412c8cdb0c01875e9bfca8d3efde9695e4d9211) у меня дома появились AVX512 инструкции, а также SHA. Пошёл в код Go смотреть поддерживает ли он их и как определяет наличие. Увидел golang.org/x/sys/cpu модуль, через который можно получить почти такой же список расширений как и cpuc выдаёт: import "golang.org/x/sys/cpu" data, _ := json.MarshalIndent(cpu.X86, "", " ") fmt.Println(string(data)) Затем вспомнил, что ведь lukechampine.com/blake3 Go-шный пакет тащит за собой github.com/klauspost/cpuid/v2, который наверняка занимается узнаванием поддерживаемых команд. И в blake3 вроде AVX512 поддержка есть. Действительно, cpuid отдельную утилиту предоставляет, которая и частоты и размеры кэшей покажет -- побольше информации чем cpuid и лично мне приятнее с Go иметь дело: go install github.com/klauspost/cpuid/v2/cmd/cpuid@latest
Сгенерирован: SGBlog 0.34.0