Все проекты

Mac GPU Checker

macOS-бенчмарк GPU в реальных TFLOPS (fp16 GEMM) — и держит ли чип число под нагрузкой.

SwiftMetalmacOS
Скриншот Mac GPU CheckerDev-story
01

Задача

При покупке б/у Mac пиковые цифры GPU врут: запылённая машина берёт пик на секунду, а через полминуты сыпется. Хочешь знать, держит ли чип число, а не просто касается его.

02

Что делали

Swift-приложение, гоняющее умножение матриц 4096×4096 в fp16 на GPU через Metal Performance Shaders 60 секунд; большая цифра это текущие TFLOPS (FLOPs считаются точно как 2·M·N·K, так что это физическая производительность, а не баллы), живая кривая показывает, как машина её держит, а вердикт сравнивает с ожидаемым диапазоном для этого поколения чипа. Есть headless-режим, выводящий одну строку JSON для сравнения машин.

03

Результат

Одно окно, одна большая цифра и форма кривой за меньше минуты говорят, держит ли GPU Mac нагрузку или троттлит — настоящий стресс-тест охлаждения, заодно инструмент осмотра б/у Mac.

Dev-story статья

Mac GPU Checker: как создавался проект

Пиковые цифры GPU подделать проще всего на свете: почти любой Mac, даже с забитым пылью радиатором, на секунду-две возьмёт свои TFLOPS, потом нагревается и сыпется. Mac GPU Checker сделан ровно для этого момента — осмотра б/у Mac — так что большая цифра на экране это не пик, а что машина делает прямо сейчас, а форма кривой рядом это и есть диагноз.

Разделы

05

Модули

05

Стек

Swift + Metal

01

Почему появился проект

При покупке б/у Mac пиковые цифры GPU врут: запылённая машина берёт пик на секунду, а через полминуты сыпется. Хочешь знать, держит ли чип число, а не просто касается его.

Пиковые цифры GPU подделать проще всего на свете: почти любой Mac, даже с забитым пылью радиатором, на секунду-две возьмёт свои TFLOPS, потом нагревается и сыпется. Mac GPU Checker сделан ровно для этого момента — осмотра б/у Mac — так что большая цифра на экране это не пик, а что машина делает прямо сейчас, а форма кривой рядом это и есть диагноз.

02

Что было создано

Swift-приложение, гоняющее умножение матриц 4096×4096 в fp16 на GPU через Metal Performance Shaders 60 секунд; большая цифра это текущие TFLOPS (FLOPs считаются точно как 2·M·N·K, так что это физическая производительность, а не баллы), живая кривая показывает, как машина её держит, а вердикт сравнивает с ожидаемым диапазоном для этого поколения чипа. Есть headless-режим, выводящий одну строку JSON для сравнения машин.

Однооконное Swift-приложение, гоняющее умножение матриц 4096x4096 в fp16 на GPU через Metal Performance Shaders 60 секунд. Огромная цифра это текущие TFLOPS; строка под ней показывает вердикт (держит, троттлит или ниже диапазона этого чипа); а живой график рисует пик пунктиром с кривой удержания под ним. Headless-режим выводит одну строку JSON, так что покупатель б/у Mac может сравнить несколько машин с флешки.

03

Основные модули и путь пользователя

M01

Цифра это физика, а не баллы: FLOPs для GEMM считаются точно как 2*M*N*K, так что величина TFLOPS это реальная пропускная способность, а не выдуманный балл бенчмарка.

M02

Он измеряет то, что важно на б/у машине — удержание, а не пик: sustained это среднее последних замеров, а low это худший замер прогона, так что троттлящий через 20-40 секунд чип показывает явную ступеньку вниз, а не дружелюбный пик.

M03

Он знает, как выглядит хорошо: приложение несёт ожидаемый диапазон для распознаваемых поколений чипов и прямо говорит, когда машина ниже него.

M04

Он заодно стресс-тест охлаждения: GEMM греет GPU сильнее почти любой реальной задачи, так что ровная линия значит, что тепловая система справляется, а ступенька вниз или пила означают пыль, высохшую пасту или конкуренцию.

M05

Он путешествует: скрипт установки собирает переносную копию на флешку, а поскольку на чужом Mac приложение не подписано, оно документирует одноразовое правый-клик-Открыть и headless CLI-путь для проверки без GUI.

04

Архитектура и технологические решения

Сделано на Swift, Metal, macOS.

Swift + Metal Performance Shaders для ядра GEMM; 60-секундный прогон с пиком, sustained и low; таблица ожидаемого диапазона по чипу для вердикта; headless-режим с одной строкой JSON; скрипт сборки/установки с переносной USB-целью.

05

Результат и выводы

Одно окно, одна большая цифра и форма кривой за меньше минуты говорят, держит ли GPU Mac нагрузку или троттлит — настоящий стресс-тест охлаждения, заодно инструмент осмотра б/у Mac.

Одно окно, одна честная цифра и форма кривой за меньше минуты говорят, держит ли GPU Mac свою номинальную производительность или тихо троттлит — разница между хорошей сделкой на б/у Mac и дорогим обогревателем.

Читать дальше

Эти проекты близки по техническим или продуктовым решениям и показывают, как тот же принцип работает в другом контексте.

Есть похожая идея?

Обсудить проект