Что: 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 ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B%20CPU%20%284d972086d9ed30deb933c419e5e9d727a45290ab%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0