Tesla — кодовое название микроархитектуры графического процессора, разработанной Nvidia и выпущенной в 2006 году в качестве преемника микроархитектуры Curie . Она была названа в честь инженера-новатора Николы Теслы . Как первая микроархитектура Nvidia, реализующая унифицированные шейдеры, она использовалась в графических процессорах серий GeForce 8 , GeForce 9 , GeForce 100 , GeForce 200 и GeForce 300 , которые в совокупности производились по 90 нм , 80 нм, 65 нм , 55 нм и 40 нм. Она также использовалась в GeForce 405 и в Quadro FX, Quadro x000, Quadro NVS и вычислительных модулях Nvidia Tesla .
Tesla заменила старые микроархитектуры с фиксированным конвейером , представленные на момент появления серией GeForce 7. Она напрямую конкурировала с первой унифицированной шейдерной микроархитектурой AMD под названием TeraScale , развитием работы ATI над Xbox 360 , которая использовала схожий дизайн. За Tesla последовала Fermi .
Tesla — первая микроархитектура Nvidia, реализующая унифицированную модель шейдеров . Драйвер поддерживает архитектуру Direct3D 10 Shader Model 4.0 / OpenGL 2.1 (более поздние драйверы поддерживают OpenGL 3.3). Дизайн представляет собой значительный сдвиг для NVIDIA в функциональности и возможностях GPU, наиболее очевидным изменением является переход от отдельных функциональных блоков (пиксельные шейдеры, вершинные шейдеры) в предыдущих GPU к однородному набору универсальных процессоров с плавающей точкой (называемых «потоковыми процессорами»), которые могут выполнять более универсальный набор задач.
Унифицированная архитектура шейдеров GeForce 8 состоит из ряда потоковых процессоров (SP). В отличие от подхода векторной обработки , используемого в старых шейдерных блоках, каждый SP является скалярным и, таким образом, может работать только с одним компонентом за раз. Это делает их менее сложными для построения, оставаясь при этом достаточно гибкими и универсальными. Скалярные шейдерные блоки также имеют преимущество в том, что они более эффективны в ряде случаев по сравнению с векторными шейдерными блоками предыдущего поколения, которые полагаются на идеальную смесь инструкций и упорядочение для достижения пиковой пропускной способности. Более низкая максимальная пропускная способность этих скалярных процессоров компенсируется эффективностью и их работой на высокой тактовой частоте (что стало возможным благодаря их простоте). GeForce 8 запускает различные части своего ядра на разных тактовых частотах (тактовых доменах), аналогично работе предыдущих графических процессоров серии GeForce 7. Например, потоковые процессоры GeForce 8800 GTX работают на тактовой частоте 1,35 ГГц, в то время как остальная часть чипа работает на частоте 575 МГц. [1]
GeForce 8 выполняет значительно лучшую фильтрацию текстур , чем его предшественники, которые использовали различные оптимизации и визуальные трюки для ускорения рендеринга без ухудшения качества фильтрации. Линейка GeForce 8 правильно отображает алгоритм анизотропной фильтрации, не зависящий от угла, вместе с полной трилинейной фильтрацией текстур . G80, хотя и не его меньшие собратья, оснащен гораздо большими арифметическими возможностями фильтрации текстур, чем серия GeForce 7. Это позволяет выполнять высококачественную фильтрацию с гораздо меньшим падением производительности, чем раньше. [1]
NVIDIA также представила новые методы сглаживания полигональных граней, включая способность ROP графического процессора выполнять как сглаживание Multisample (MSAA), так и освещение HDR одновременно, исправляя различные ограничения предыдущих поколений. GeForce 8 может выполнять MSAA с форматами текстур FP16 и FP32. GeForce 8 поддерживает 128-битный рендеринг HDR , что больше, чем поддержка 64-битных предыдущих карт. Новая технология сглаживания чипа, называемая coverage sampling AA (CSAA), использует Z, цвет и информацию о покрытии для определения окончательного цвета пикселя. Эта техника оптимизации цвета позволяет 16X CSAA выглядеть четким и резким. [2]
Заявленная теоретическая вычислительная мощность одинарной точности для карт на базе Tesla, выраженная в FLOPS, может оказаться труднодостижимой при реальных рабочих нагрузках. [3]
В G80/G90/GT200 каждый потоковый мультипроцессор (SM) содержит 8 шейдерных процессоров (SP, или унифицированный шейдер, или ядро CUDA ) и 2 специальных функциональных блока (SFU). Каждый SP может выполнять до двух операций с одинарной точностью за такт: 1 умножение и 1 сложение, используя одну инструкцию MAD . Каждый SFU может выполнять до четырех операций за такт: четыре инструкции MUL (умножение). Таким образом, один SM в целом может выполнять 8 MAD (16 операций) и 8 MUL (8 операций) за такт, или 24 операции за такт, что (условно говоря) в 3 раза больше числа SP. Таким образом, для расчета теоретической производительности двойной выдачи MAD+MUL в операциях с плавающей точкой в секунду [ FLOPS sp+sfu , GFLOPS ] графической карты с количеством SP [ n ] и частотой шейдеров [ f , ГГц] формула выглядит следующим образом: FLOPS sp+sfu = 3 × n × f . [4] [5]
Однако использование производительности двойной эмиссии, такой как MAD+MUL, проблематично:
По этим причинам, чтобы оценить производительность реальных рабочих нагрузок, может быть более полезным игнорировать SFU и предположить только 1 MAD (2 операции) на SP за цикл. В этом случае формула для расчета теоретической производительности в операциях с плавающей точкой в секунду становится: FLOPS sp = 2 × n × f .
Теоретическая мощность обработки двойной точности графического процессора Tesla составляет 1/8 от производительности одинарной точности на GT200; поддержка двойной точности на G8x и G9x отсутствует. [9]
NVENC был представлен только в более поздних чипах.
потоковые процессорные ядра графических процессоров GeForce GTX 200 теперь могут выполнять почти на полной скорости двойную выдачу операций умножения-сложения (MAD) и MUL (3 флопса/SP)