Потому что они на разных полюсах живут :) А если серьёзно - статью писал руками, могу про мерцание буферов рассказать подробнее, про медведей хуже знаю.
RSS = Resident Set Size, объём физической RAM, которую процесс реально занимает.Кривые-график этой величины во времени
гейты бит-идентичности = Автотест-'ворота': не пускают изменение дальше, если результат не совпал с эталоном до последнего бита.
спиннер = крутящийся индикатор 'идёт работа' в интерфейсе (у нас с текстом прогресса)
хвосты батчей = работа делится на пачки (батчи). 'Хвост' - концовка пачки, когда почти все потоки закончили, а один дожёвывает последнее, и остальные простаивают.
трейс шёл батчами с фиксированными чанками… остальные тринадцать уже умерли = обход цепей (трейс) шёл пачками по 896 заданий, поделёнными на 14 фиксированных кусков по числу потоков. Если одному потоку достался кусок с тяжёлыми заданиями, 13 других, доделав свои куски, простаивали и ждали его
классический профиль своп-спирали=Память кончается, ОС начинает выгружать страницы на диск (swap) , процесс ждёт диск , ещё медленнее. 'Профиль' = характерная форма поведения: стартует бодро, потом всё медленнее.
троттлинг репейнта во время билда до 10 Гц = Во время расчёта ограничили перерисовку интерфейса до 10 кадров/с, чтобы рендер не отъедал ресурсы у вычисления
ложный мост met2-met4 сливал нумерацию цепей… схлопывались при дедупликации = призрачная связь между слоями металла 2 и 4 ошибочно соединяла электрически разные цепи в одну. Внутри ячеек разные цепи получали одинаковые 'номера', становились неотличимы, и дедупликатор (убирающий повторы) выкидывал их как дубликаты. Итог — цепей насчиталось меньше, чем есть
дедуп съел границы поглощённых кусков=емкость по периметру (fringe) считается по границам цепи. Когда дедуп слил несколько цепей в одну, внутренние границы исчезли - а с ними и их вклад в ёмкость
образцовые гейты эквивалентности: параллельный код сверяется с серийным до бита, воспроизводятся строково=тесты проверяют, что многопоточная версия даёт ровно тот же результат, что однопоточная, и что повторные запуски дают идентичный вывод вплоть до символов в строке
Спасибо! Я искал, кстати. Читал issues wgpu, статьи про LOD, гуглил "как быстро перестраивать буфер" - просто искал не то. Правильный вопрос был "зачем я вообще каждый кадр это делаю", и до него пришлось дойти через четыре неудачных попытки. В литературе готового ответа на него нет. Про CD-ROM точно подмечено. С развалом хотя бы сразу было ясно, что не нашел. Сейчас можно неделю читать про похожее и не заметить, что это не оно.
Потому что они на разных полюсах живут :) А если серьёзно - статью писал руками, могу про мерцание буферов рассказать подробнее, про медведей хуже знаю.
RSS = Resident Set Size, объём физической RAM, которую процесс реально занимает.Кривые-график этой величины во времени
гейты бит-идентичности = Автотест-'ворота': не пускают изменение дальше, если результат не совпал с эталоном до последнего бита.
спиннер = крутящийся индикатор 'идёт работа' в интерфейсе (у нас с текстом прогресса)
хвосты батчей = работа делится на пачки (батчи). 'Хвост' - концовка пачки, когда почти все потоки закончили, а один дожёвывает последнее, и остальные простаивают.
трейс шёл батчами с фиксированными чанками… остальные тринадцать уже умерли = обход цепей (трейс) шёл пачками по 896 заданий, поделёнными на 14 фиксированных кусков по числу потоков. Если одному потоку достался кусок с тяжёлыми заданиями, 13 других, доделав свои куски, простаивали и ждали его
классический профиль своп-спирали=Память кончается, ОС начинает выгружать страницы на диск (swap) , процесс ждёт диск , ещё медленнее. 'Профиль' = характерная форма поведения: стартует бодро, потом всё медленнее.
троттлинг репейнта во время билда до 10 Гц = Во время расчёта ограничили перерисовку интерфейса до 10 кадров/с, чтобы рендер не отъедал ресурсы у вычисления
ложный мост met2-met4 сливал нумерацию цепей… схлопывались при дедупликации = призрачная связь между слоями металла 2 и 4 ошибочно соединяла электрически разные цепи в одну. Внутри ячеек разные цепи получали одинаковые 'номера', становились неотличимы, и дедупликатор (убирающий повторы) выкидывал их как дубликаты. Итог — цепей насчиталось меньше, чем есть
дедуп съел границы поглощённых кусков=емкость по периметру (fringe) считается по границам цепи. Когда дедуп слил несколько цепей в одну, внутренние границы исчезли - а с ними и их вклад в ёмкость
образцовые гейты эквивалентности: параллельный код сверяется с серийным до бита, воспроизводятся строково=тесты проверяют, что многопоточная версия даёт ровно тот же результат, что однопоточная, и что повторные запуски дают идентичный вывод вплоть до символов в строке
Спасибо за вопрос. Все верно
Спасибо за обратную связь! Постараюсь писать проще. Что именно осталось непонятным? Я объясню.
Спасибо! Я искал, кстати. Читал issues wgpu, статьи про LOD, гуглил "как быстро перестраивать буфер" - просто искал не то. Правильный вопрос был "зачем я вообще каждый кадр это делаю", и до него пришлось дойти через четыре неудачных попытки. В литературе готового ответа на него нет. Про CD-ROM точно подмечено. С развалом хотя бы сразу было ясно, что не нашел. Сейчас можно неделю читать про похожее и не заметить, что это не оно.