select max(id) - min(id) from xxx_table where
....
Это будет использовать «Выбор таблиц, оптимизированных вне», и очень быстро !!!
Примечание max(id) - min(id)
на самом деле больше, чем count(1)
.
Дни использования Cg или GLSL для GPGPU почти прошли. Однако они широко используются для 3D-графики и будут продолжать использоваться в обозримом будущем. GLSL и Cg использовались только для научных вычислений, потому что это были единственные игры в городе. Другой альтернативы для выполнения вычислений общего назначения на GPU не существовало.
Единственная реальная причина использовать GLSL для GPGPU прямо сейчас - это не зависеть от платформы. Если вам абсолютно необходимо иметь возможность запускать свое программное обеспечение на различных графических процессорах, на данный момент это все еще способ. Однако OpenCL изменит это в ближайшем будущем.
Причины, по которым научные вычисления переходят на такие вещи, как CUDA и OpenCL, многочисленны. Эти библиотеки обеспечивают лучший доступ к оборудованию графического процессора и большую прозрачность в отношении узких мест производительности. Это упрощает получение максимальной производительности от графического процессора. CUDA и OpenCL также предлагают функции (например, разделяемую память), которые просто недоступны в GLSL или Cg, но имеют решающее значение для получения хорошей производительности во многих алгоритмах (например, транспонирование матрицы). Другая причина заключается в том, что CUDA и OpenCL предоставляют вам доступ к графическому процессору без необходимости графического контекста, что позволяет вам, среди прочего, удаленно использовать графический процессор компьютера для вычислений.
Вы сравниваете яблоки с апельсинами. CUDA и OpenCL предназначены для выполнения вычислений общего назначения на графических процессорах. GLSL и Cg - это языки шейдеров. Они в первую очередь предназначены для написания шейдеров, а не для вычислений общего назначения.
Я не знаю о фактическом состоянии GLSL, но я знаю о Cg. Прошло много лет с тех пор, как я использовал его, но мой друг, который только что работал над новой 3D-игрой, действительно использовал Cg для написания своих шейдеров. Даже если за Cg нет такого же сообщества и отраслевой поддержки, как раньше, она все еще существует, и вы все еще можете ее использовать.