Да, вы можете сделать это. Нет, для этого вам не нужно оборудование 4.X, вам нужны фрагментные шейдеры (с контролем потока), объекты кадрового буфера и поддержка текстур с плавающей запятой.
Вам необходимо закодировать ваши данные в 2D текстуру.
Сохраните «переменную состояния» в 1-м пикселе для каждой строки и закодируйте оставшиеся данные в оставшиеся пиксели. Само собой разумеется, что рекомендуется использовать формат текстуры с плавающей запятой.
Используйте два кадровых буфера и визуализируйте их друг в друге в цикле, используя фрагментный шейдер, который обновляет «переменную состояния» в первом столбце и выполняет любую необходимую операцию с другим столбцом, который является «текущим». Чтобы уменьшить количество потерянных ресурсов, вы можете ограничить рендеринг столбцами, которые вы хотите обработать. Примеры NVidia OpenGL SDK имели демки "game of life", "Fluid GDGPU", "GPU partciles", которые работают аналогичным образом - кодируя данные в текстуру и затем используя шейдеры для ее обновления.
Однако, потому что вы можете это сделать, это не значит, что вы должны это делать, и это не значит, что это гарантированно быстро. Некоторые графические процессоры могут иметь очень высокую скорость чтения текстурной памяти, но относительно низкую скорость вычислений (и наоборот), и не все графические процессоры имеют много конвейеров для параллельной обработки данных.
Кроме того, в зависимости от вашего приложения, CUDA или OpenCL могут быть более подходящими.