This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатный курс от MIT для начинающих по основам компьютерных наук. В этих классических лекциях разбираются такие концепции, как дизайн языков программирования, абстракция и рекурсия: https://bit.ly/46zVDEy
👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍3
Вот трюк для оптимизации нейросетки, который даёт примерно 4x ускорение при передаче данных с CPU на GPU.
Представим задачу классификации изображений.
Определяем модель, загружаем и преобразуем данные.
В цикле обучения передаём данные на GPU и тренируем сеть.
В чём проблема:
Если заглянуть в профайлер,
- большая часть ресурсов уходит на ядро (то есть на само обучение),
- но заметное время тратится и на передачу данных с CPU на GPU (cudaMemcpyAsync).
Сократить это просто.
Изначально датасет состоит из пикселей в виде 8-битных целых чисел. Мы преобразуем их в 32-битные float’ы.
А потом именно эти float-тензоры гоняем на GPU. В итоге данных стало в 4 раза больше, а значит, и передача тяжелее.
Решение:
Сдвинуть шаг преобразования после передачи. То есть сначала передаём 8-битные int’ы, а уже на GPU конвертируем их в float.
В результате шаг передачи данных заметно ускорится.
Конечно, это работает не везде, например, в NLP мы изначально имеем дело с float-эмбеддингами.
Но в случаях, где это применимо, ускорение получается очень ощутимым.
👉 @PythonPortal
Представим задачу классификации изображений.
Определяем модель, загружаем и преобразуем данные.
В цикле обучения передаём данные на GPU и тренируем сеть.
В чём проблема:
Если заглянуть в профайлер,
- большая часть ресурсов уходит на ядро (то есть на само обучение),
- но заметное время тратится и на передачу данных с CPU на GPU (cudaMemcpyAsync).
Сократить это просто.
Изначально датасет состоит из пикселей в виде 8-битных целых чисел. Мы преобразуем их в 32-битные float’ы.
А потом именно эти float-тензоры гоняем на GPU. В итоге данных стало в 4 раза больше, а значит, и передача тяжелее.
Решение:
Сдвинуть шаг преобразования после передачи. То есть сначала передаём 8-битные int’ы, а уже на GPU конвертируем их в float.
В результате шаг передачи данных заметно ускорится.
Конечно, это работает не везде, например, в NLP мы изначально имеем дело с float-эмбеддингами.
Но в случаях, где это применимо, ускорение получается очень ощутимым.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29
Please open Telegram to view this post
VIEW IN TELEGRAM
😁56🤣33❤4👀2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатная халява в Steam
Забираем Upload Labs — симулятор программиста, где тебе предстоит спасти Вселенную от тепловой смерти, создав идеальную компьютерную систему.🤣
Готовься к настоящему испытанию мозга, ведь придётся писать код, оптимизировать ресурсы и заставлять всё работать как часы.
Забираем: стим
👉 @PythonPortal
Забираем Upload Labs — симулятор программиста, где тебе предстоит спасти Вселенную от тепловой смерти, создав идеальную компьютерную систему.
Готовься к настоящему испытанию мозга, ведь придётся писать код, оптимизировать ресурсы и заставлять всё работать как часы.
Забираем: стим
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20💊1