Как я могу запросить вызовы шейдеров в OpenGL ES?

Этот вопрос был обсужден достаточно подробно, и у меня не было возможности прочитать все ответы. Но вот несколько вещей, которые нужно учитывать при просмотре верхнего предела количества одновременных потоков, которые могут сосуществовать мирно в данной системе.

  1. Размер стека в потоке: в Linux размер стека по умолчанию составляет 8 МБ (вы можете использовать ulimit -a, чтобы узнать его).
  2. Макс. Виртуальная память, поддерживаемая данным вариантом ОС. Linux Kernel 2.4 поддерживает адресное пространство памяти 2 ГБ. с ядром 2.6, я немного больше (3 ГБ)
  3. [1] показывает расчеты для максимального количества потоков при заданной максимальной поддержке VM. Для 2.4 получается около 255 потоков. для 2.6 число немного больше.
  4. Какой у вас планировщик ядра kernel? Сравнивая планировщик ядра Linux 2.4 с 2.6, более поздний дает вам планирование O (1), не зависящее от количества задач, существующих в системе, в то время как первый из них больше O (n). Таким образом, возможности SMP в графике ядра также играют хорошую роль в максимальном количестве устойчивых потоков в системе.

Теперь вы можете настроить размер стека, чтобы включить больше потоков, но тогда вы должны учитывать накладные расходы на управление потоками (создание / уничтожение и планирование). Вы можете обеспечить привязку CPU к данному процессу, а также к определенному потоку, чтобы привязать их к конкретным процессорам, чтобы избежать накладных расходов на потоковую передачу между CPU и избежать проблем с холодным наливом.

Обратите внимание, что при его желании можно создавать тысячи потоков, но когда Linux заканчивается из VM, он просто случайно запускает процессы уничтожения (таким образом, потоки). Это означает, что профиль полезности не будет превышен. (Функция полезности сообщает об утилите всей системы для заданного количества ресурсов. С постоянными ресурсами в этом случае CPU Cycles and Memory кривая полезности сглаживается с большим количеством задач).

I я уверен, что планировщик ядра Windows также делает что-то подобное для борьбы с использованием ресурсов

[1] http://adywicaksono.wordpress.com/2007/07/10/i- может-не-создавать-более, чем 255-нитей-на-Linux-что-это-The-решения /

0
задан BDL 31 December 2018 в 12:48
поделиться