+ {ru ? 'Процедура выбора' : 'Selection procedure'} +
++ {ru ? 'Как сузить каталог форматов под задачу' : 'How to narrow the format catalogue to a task'} +
++ {ru + ? 'Это не автоматический вердикт и не рейтинг. Матрица помогает выбрать набор кандидатов для одного и того же замера: сначала фиксируются задача, данные и устройство, затем сравниваются точность, диапазон, ресурсы и воспроизводимость.' + : 'This is not an automatic verdict or a ranking. The matrix narrows the candidates for one measurement: fix the task, data and device first, then compare accuracy, range, resources and reproducibility.'} +
++ {ru ? 'Четыре вопроса перед выбором' : 'Four questions before choosing'} +
+-
+ {(ru
+ ? ['Что именно кодируется: веса, активации, скоры или аккумуляторы?', 'Какова форма распределения и допустимая ошибка на вашей задаче?', 'Какое устройство ограничивает проект: CPU, GPU или бинарная FPGA AX7203?', 'Какие векторы и независимый оракул позволят повторить результат?']
+ : ['What is being encoded: weights, activations, scores or accumulators?', 'What is the distribution and acceptable error for your task?', 'Which device constrains the project: CPU, GPU or the binary AX7203 FPGA?', 'Which vectors and independent oracle will make the result reproducible?']
+ ).map((item) =>
- {item} )} +
+ {ru ? 'Матрица формат × задача' : 'Format × task matrix'} +
++ {ru + ? <>В каталоге 83 формата. Ниже — пять отправных кандидатов, а не сокращение каталога: в каждой ячейке указано, какое действие нужно выполнить до вывода.> + : <>The catalogue contains 83 formats. Below are five starting candidates, not a reduction of the catalogue: each cell states what to do before drawing a conclusion.>} +
+| {ru ? 'Формат' : 'Format'} | + {TASKS.map((item) => ( +{ru ? item.ru : item.en} | + ))} +
|---|---|
| + {candidate.name} + {text(candidate.family)} + | + {TASKS.map((item) => { + const cell = candidate.cells[item.id] + return ( ++ + {text(STATUS_LABELS[cell.status])} + + {text(cell.text)} + | + ) + })} +
+ {ru ? 'Как читать результат' : 'How to read the result'} +
++ {ru + ? 'Метка «начать здесь» означает удобную первую проверку, а не присвоение формату статуса. «Сравнить» требует одинаковых данных, бюджета и метрики. «Проверить» указывает на риск, который нельзя закрыть одной таблицей.' + : '“Start here” marks a practical first check, not a status assigned to a format. “Compare” requires the same data, budget and metric. “Check” points to a risk that one table cannot close.'} +
++ {ru + ? 'Итоговый кандидат появляется только после прогона на вашей нагрузке. Публичные аппаратные проверки в этом проекте относятся к бинарной FPGA ALINX AX7203 на Xilinx Artix-7 XC7A200T; они не заменяют замер на другом устройстве.' + : 'A final candidate appears only after a run on your workload. Public hardware checks in this project target the binary ALINX AX7203 FPGA with a Xilinx Artix-7 XC7A200T; they do not replace a measurement on another device.'} +
+