Длинная и непростая, но довольно интересная статья от чувака, который пилил рендеринг шрифтов на Android 3.0. Речь пойдет о том, как все это безобразие работает и насколько сложна на самом деле отрисовка текста. Советую заглянуть. Пис 🖖🏻
#android #font #gpu
https://medium.com/@romainguy/androids-font-renderer-c368bbde87d9
#android #font #gpu
https://medium.com/@romainguy/androids-font-renderer-c368bbde87d9
Medium
Android’s Font Renderer
Efficient text rendering with OpenGL ES
Выступление Chet Haase и Romain Guy. Тут ты должен был стать заинтригован.
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
2. Кусочек хинта (почему так - см. видео) - чем меньше
3. Метод
4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
Подробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
Bitmap.Config.HARDWARE, чтобы аллоцировать Bitmap напрямую на GPU и не тратить время на копирование. Недостаток: если серьёзно разойтись, можно получить пачку совершенно невнятных крашей из глубин фреймворка2. Кусочек хинта (почему так - см. видео) - чем меньше
Window объектов на экране, тем лучше3. Метод
invalidate(left, top, right, bottom) можно больше не дрочить - система уже умеет неплохо оптимизировать этот момент, а багов от его использования уйма4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
adb shell dumpsys SurfaceFlinger лучше выполнять, когда что-то анимируется/меняется на экране, иначе можно получить не совсем точные данные из-за дополнительных оптимизацийПодробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
YouTube
Drawn out: How Android renders (Google I/O '18)
Come learn how Android turns your app's UI into pixels on the screen. Understanding how things work under the hood can help you figure out how to get the best performance for your applications.
Rate this session by signing-in on the I/O website here → h…
Rate this session by signing-in on the I/O website here → h…
Недетерминизм LLM - один из спонсоров моей головной боли. Вроде бы вот же компьютер, вот программа, оно всё как правило работает одинаково для одних и тех же входных данных. Но добиться одинаковых ответов от LLM при одних и тех же токенах на вход и при всех выкрученных top p / temperature всё равно не получается. И вот в этом посте шаг за шагом разбирают, почему оно так. Дело не в самих LLM и даже не в floating point arithmetic, там для forward pass всё как раз детерминированно. Дело в батчинге и в вариациях в нагрузке на сервера. Другие такие же люди приходят со своими запросами к LLM и тем самым создают эту вариативность ответов. Добиться стабильных ответов можно - в посте это показывают, но платить за это придётся производительностью.
#llm #ai #gpu
#llm #ai #gpu
Thinking Machines Lab
Defeating Nondeterminism in LLM Inference
Reproducibility is a bedrock of scientific progress. However, it’s remarkably difficult to get reproducible results out of large language models.
For example, you might observe that asking ChatGPT the same question multiple times provides different results.…
For example, you might observe that asking ChatGPT the same question multiple times provides different results.…
👍2🔥2