1 / 20

GPU vs. CPU

GPU vs. CPU. R600. G80 (NV50). 681 млн. транзисторов Тактовая частота 575Mhz * 768MB 1.8 Ghz памяти DDR4. ~650 млн. транзисторов Тактовая частота ~700Mhz 1GB 1.1 Ghz памяти DDR4. Тактовая частота 2.66Ghz 581 млн. транзисторов ( quad core). Intel QX6700.

miyoko
Download Presentation

GPU vs. CPU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPU vs. CPU R600 G80 (NV50) • 681 млн. транзисторов • Тактовая частота 575Mhz* • 768MB 1.8 Ghz памятиDDR4 • ~650 млн. транзисторов • Тактовая частота ~700Mhz • 1GB 1.1 Ghz памяти DDR4 • Тактовая частота 2.66Ghz • 581 млн. транзисторов (quad core) Intel QX6700 * ALU работают на 1350Mhz

  2. GPU vs. CPU (3 года назад) NV30 R300 • 120 млн. транзисторов • Тактовая частота 500Mhz • 128MB 500MHz памяти • 107 млн. транзисторов • Тактовая частота 325Mhz • 128MB 310MHz памяти • Тактовая частота 1.6Ghz – 3.06Ghz • 42 млн. Транзисторов (core)

  3. Полигональное представление объектов Объект задан набором вершин, которые объединены в плоские грани, чаще всего – треугольные. • Для каждой вершины заданы: • Координаты вершины • Нормаль • Координаты текстуры • И много чего еще ...

  4. Общая архитектурасистемы CPU 6.4 GB/s GPU Chipset CPU RAM 6.4 GB/s 8GB/s 35GB/s для GeForce 6600 ~80 GB/s для GeForce 8800 GPU RAM По материалам книги GPU Gems 2

  5. Классический графический конвейер float4x4 modelview,projection; float4 lights[8]; float4 diffuse,specular,ambient; float4 position; float3 normal; float2 tex0,tex1,… T&L Сборка примитивов x,y,z,w,… x,y,z,u0,v0, u1,v1,… Rasterization x,y,z,RGBA Pixel Ops Буфер кадра Texture2D tex0; Texture2D tex1; + Режим смешения текстур Режимы растровых операций

  6. Программируемый графический конвейер float4x4 m0,m1,…mN; float4 v0,v1,…,vM; Texture2Dtex1, tex2 + программа обработки вершин float4 position (attr0) float4 attr1; float4 attr2; float3 attr3; Сборка примитивов T&L x,y,z,w,… x,y,z,w, c0,c1, c2,c3,… Rasterization x,y,z,RGBA Pixel Ops Texture2D tex0; Texture2D tex1; + программа обработки фрагментов Режимы растровых операций

  7. Программируемый графический конвейер (DX10) float4x4 m0,m1,…mN; float4 v0,v1,…,vM; Texture2Dtex1, tex2 + программа обработки вершин float4 position (attr0) float4 attr1; float4 attr2; float3 attr3; x,y,z,w, c0,c1, c2,c3,… Сборка примитивов T&L Геометрический шейдер x,y,z,w,… Запись потока x,y,z,w, c0,c1, c2,c3,… Видеопамять Rasterization Pixel Ops x,y,z,RGBA Texture2D tex0,tex1; + программа обработки фрагментов Режимы растровых операций

  8. Вершинная программа (шейдер) Вершинная программа - программа, на вход которой поступают однородные координаты x,y,z и w вершины и некоторый набор дополнительных атрибутов attr1,attr2,.., attrK.Результатом работы вершинной программы являются однородные координаты x’,y’,z’,w’ и некоторый набор значений c0,c1,…,cN. dp4 r0.x, v0, m0[0] dp4 r0.y, v0, m0[1] dp4 r0.z, v0, m0[2] dp4 r0.w, v0, m0[3] mov oD0, c[4] ; Output color mov oPos, r0 ; Output vertex T&L

  9. Пиксельная программа (шейдер) Пиксельная программа (пиксельный шейдер, fragment program) - программа, на вход которой поступают координаты x’,y’,z’ и некоторый набор интерполированных по примитиву значений c0,c1,…,cNдля обрабатываемого пиксела. Результатом работы пиксельной программы является цвет в формате RGBA и, возможно, измененная координата z. c0,c1,c2,… c0,c1,c2,… ps.1.0 // DX8Version. tex t0 // n-map. texm3x3pad t1, t0_bx2 texm3x3pad t2, t0_bx2 v0_bx2texm3x3tex t3, t0_bx2 dp3_sat r0, t3_bx2, c0,c1,c2,… Rasterization

  10. Язык описания шейдеров Язык описания шейдеров определяет допустимый набор передаваемых параметров (сколько атрибутов может быть у вершины, сколько величин может интерполироваться вдоль примитива) и набор доступных операций для некоторого абстрактного графического процессора • GL_ARB_vertex_program & GL_ARB_fragment_program • GL_NV_texture_shader • Direct3D Pixel & Vertex shaders 1.0 (DX8); 2.0, 3.0 (DX9); 4.0 (DX10) • Nvidia Cg • Microsoft HLSL • OpenGL Shading Language (GLSL)

  11. Шейдерные модели

  12. Архитектура GeForce 8800 По материалам сайта iXBT

  13. Возможности вершинных программ 3.0 • Instancing • Один поток вершин может порождать несколько объектов • 32 временных регистра float4 • Инструкции динамического ветвления • Условные переходы и циклы • Возможность обращения к текстурам • Фактически, доступ к массивам float4 • 512 статических инструкций • 65536 динамических инструкций

  14. Возможности фрагментных программ 3.0 • Instancing • Один поток вершин может порождать несколько объектов • Несколько render target • Результаты могут быть записаны в 4 float4 • Инструкции динамического ветвления • Условные переходы и циклы • Обращение к атрибутам вершины по индексу • Удобно в циклах

  15. Преобразование нормалей • Уравнение плоскости • Преобразуем координаты при помощи матрицы M

  16. Bump-mapping • На поверхности задается система координат b n t • Компоненты текстуры RGB задают нормаль в связанной с поверхностью системе координат • Для расчета освещения направления на источник освещения и направление на наблюдателя преобразуются в связанную с поверхностью систему координат • Для расчета отражения вектор нормали преобразуется в системукоординат наблюдателя. Затем рассчитывается отражения (spheremap или cube map)

  17. Bump-mapping • На поверхности задается система координат b n t

  18. Литература

More Related