Графические процессоры, подобные NVIDIA Tesla, не вполне соответствуют предыдущим классификациям компьютеров, например в такой, как в табл. 7.2. Несомненно, GeForce 8800 GTX с 16 мультипроцессорами Tesla относится к MIMD. Вопрос в том, как классифицировать каждый из мультипроцессоров Tesla и восемь потоковых процессоров, составляющих мультипроцессор Tesla.
Ранее утверждалось, что SIMD больше нечто подходит для циклов for и меньше всего подходит для операторов case и switch. Tesla стремится к достижению высокой эффективности при параллелизме на уровне данных, облегчая программистам работу с независимым параллелизмом на уровне потоков. Tesla позволяет программисту считать мультипроцессор многопоточным MIMD-устройством, состоящим из восьми потоковых процессоров, но оборудование старается собрать вместе восемь потоковых процессоров для работы в качестве SIMT-устройства, когда несколько потоков одного и того же варпа могут выполняться вместе. Когда потоки работают независимо друг от друга и следуют по независимым путям выполнения, они выполняются медленнее, чем в режиме SIMT, поскольку все 32 потока в варпе совместно используют один блок извлечения инструкций. Если бы все 32 потока варпа выполняли независимые инструкции, каждый поток работал бы в 1/16 пиковой производительности полного варпа из 32 потоков, выполняемых на восьми потоковых процессорах в течение четырех тактовых циклов.
Таким образом, у каждого независимого потока есть свой собственный эффективный персональный компьютер, поэтому программисты могуг представлять мультипроцессор Tesla в виде MIMD-устройства, но, чтобы добиться желаемой производительности, они должны позаботиться о написании инструкций потока управления, позволяющих SIMT-оборудованню выполнять CUDA-программы в SIMD-режиме.
В отличие от векторной архитектуры, которая для распознавания параллелизма на уровне данных и генерации векторных инструкций полагается на векторизиру- ющий компилятор, аппаратная реализация архитектуры Tesla обнаруживает параллелизм на уровне данных среди потоков в процессе выполнения. Таким образом, графические процессоры Tesla не нуждаются в векторизирующих компиляторах, и они облегчают программисту работу с частями программы, не имеющими параллелизма на уровне данных. Чтобы разобраться с перспективами этого уникального подхода, приведена классификация, рассматривающая параллелизм на уровне инструкций в противоположность параллелизму на уровне данных, и показывается, где обнаруживается параллелизм - во время компиляции или в процессе выполнения. Эта классификация свидетельствует о том, что графический процессор Tesla является новым словом в компьютерной архитектуре.