Точное соотношение зависит от карты и водителя. Шейдерные программы преобразуются из общих форм (например, OpenGL или DirectX) во что-то, что карта может запускать напрямую, что-то вроде своевременной компиляции для языков, таких как Java, которые используют байт-код.
Таким образом, отношения зависят от характера программы и карты. Карте может потребоваться назначить несколько ядер, если программа большая и сложная, но, скорее всего, одно ядро будет запускать множество экземпляров шейдера на нескольких потоковых процессорах.
Современные карты назначают работу динамически, поэтому редко встречаются отношения 1: 1. Каждое ядро имеет несколько потоковых процессоров, поэтому может обрабатывать несколько шейдеров одновременно, если они не слишком сложны.