Учитывая четырехэлементную природу типов графических данных, графические процессоры исторически имели SIMD-инструкции, подобные инструкциям центральных процессоров. Но современные GPU, чтобы облегчить программирование и повысить эффективность, больше сориентированы на скалярные инструкции.
В отличие от центральных процессоров в них не было поддержки арифметики чисел с плавающей точкой двойной точности, поскольку для графических приложений она была не нужна. В 2008 году были представлены первые GPU с поддержкой чисел двойной точности. Тем не менее даже на этих новых графических процессорах операции с одинарной точностью по-прежнему будут осуществляться в 8 10 раз быстрее операций с двойной точностью, в то время как разница в производительности для центральных процессоров сводится к положительным сторонам передач в системе памяти меньшего количества баіітов в силу использования более узких данных.
Хотя GPU были разработаны для более узкого круга приложений, некоторые программисты задавались вопросом, могли бы они придать своим приложениям такую форму, которая позволила бы им раскрыть высокую потенциальную производительность графических процессоров. Чтобы выделить этот стиль использования графических процессоров, некоторые специалисты назвали его универсальным использованием графических процессоров (General Purpose GPUs, или GPGPIJs). После изнурительных попыток решить свои задачи с использованием графических API и языков программирования графических шейдеров, они под влиянием языка С разработали языки, позволившие им создавать программы непосредственно для графических процессоров. В качестве примера можно привести Brook, потоковый язык для графических процессоров. Следующим шагом как в повышении возможностей программирования оборудования, так и в языках программирования стала разработанная компанией NVIDIA архитектура CUDA (Computer Unified Divice Architecture), позволяющая программистам создавать программы на языке С, которые, хотя и с некоторыми ограничениями, но все же могли выполняться на графических процессорах. С повышением программируемости стала расти и степень использования графических процессоров в параллельных вычислениях.