Це проблема вирівнювання віртуальних процесорів (VP) до фізичних процесорів (PP) GPU. Оскільки кількість РР часто є потужністю 2, використання числа ВП, відмінних від потужності 2, призводить до низької продуктивності.
Ви можете бачити відображення ВП на ПП як купу шматочків розміром з числом ПП .
Скажіть, у вас 16 ПП.
На них можна зіставити 16 ВП: 1 ВП відображено на 1 ПП.
Ви можете нанести на них 32 ВП: 2 скибочки по 16 ВП, 1 ПП відповідатиме за 2 ВП.
І т.д. Під час виконання кожен ПП виконує завдання 1-го ВП, за який він відповідає, потім завдання 2-го ВП тощо.
Якщо ви використовуєте 17 ВП, кожен ПП виконує завдання свого першого ПП, то 1 ПП виконати завдання 17-го Іінші не зроблять нічого (уточнено нижче).
Це пов'язано з парадигмою SIMD (що називається вектором у 70-х роках), що використовується GPU. Це часто називають паралелізмом даних: всі ПП роблять те саме, що одночасно, але за різними даними. Дивіться https://en.wikipedia.org/wiki/SIMD .
Точніше, у прикладі з 17 ВП, як тільки виконана робота 1-го фрагмента (всім ПП, які виконують роботу свого першого ВП), всі ПП виконають ту саму роботу (2-й ВП), але лише один має дані для роботи .
Нічого спільного з навчанням. Це лише речі програмування.