POLITECHNIKA OPOLSKA
Modelowanie i analiza systemu
Temat: Wpływ ilości rdzeni CPU na szybkość renderowania w programie Blender z użyciem silnika renderującego Cycles. Różnice w prędkości renderowania między CPU, a GPU (CUDA).
Łukasz Basiński
Maciej Kossak
Marek Cywiński
Adam Czech
Zadanie ma na celu badanie wzrostu prędkości renderowania wraz z zwiększaniem ilości rdzeni CPU, oraz porównanie czasu renderowania na procesorze z czasami renderów tej samej sceny na karcie graficznej w programie Blender, porównane zostaną również czasy renederowania przykładowych scen z różnymi typami materiałów, oraz ilością geometrii.
Zadanie będzie polegało na stworzeniu sceny testowej w programie Blender z wykorzystaniem silnika renderującego Cycles, a następnie renderowaniem jej z wykorzystaniem różnej ilości rdzeni (1,2...8) na wielu procesorach - scena zostanie tak przygotowana, aby na najmocniejszym procesorze scena z użyciem 1 rdzenia renderowała się od 1 do 2 minut. Następnie ta sama scena zostanie wyrenderowana za pomocą karty graficznej Nvidia z wykorzystaniem CUDA (ang. Compute Unified Device Architecture).
Projekt będzie składać się ze scen:
o różnych rodzajach materiałów:
diffuse
glossy
glass
subsurface scattering
volume absorption
o różnej gęstości siatki:
low poly (koło 100 tys. wierzchołków)
high poly (koło 1 mln wierzchołków)
o różnej ilości cząsteczek:
10 tys. cząsteczek włosów
100 tys. cząsteczek włosów
Każdy render zostanie zapisany z nazwą w postaci “nazwascenytestowej_ilośćrdzeni_x.png” (gdzie nazwascenytestowej oznacza szczególny typ sceny w danym teście (np. “diffuse_czasteczki”), x oznacza ilość rdzeni), a na obrazie zostaną zapisane takie dane jak czas renderu, data wykonania renderu. W przypadku renderu na GPU plik zostanie zapisany jako “SCENA_GPU.png”.
Do wykonania projektu zostanie wykorzystany program Blender oraz procesory CPU i GPU.
Blender jest najbardziej zaawansowanym darmowym pakietem do tworzenia grafiki trójwymiarowej. Umożliwia wygodne modelowanie za pomocą wielu typów obiektów, stosowanie efektów specjalnych, przygotowywanie realistycznych renderingów, a także udostępnia silnik graficzny do gier oraz liczne funkcje do tworzenia animacji. Pod względem możliwości Blender nie ustępuje komercyjnym produktom, a o zasłużonej popularności tego programu świadczą miliony jego pobrań i nieustannie rosnące grono użytkowników.
Procesory CPU:
AMD Athlon(™) II P340 Dual-Core Processor 2,20 GHz
Intel Pentium i3-2310M 2,10 GHz
Intel i7-2670QM 2,20 GHz
Intel i7-4770k 4.1 GHz
Intel i7-4710HQ 2.5 GHz
Procesory GPU:
NVIDIA GeForce GT540M
NVIDIA GeForce GT 555M
NVIDIA GeForce GTX 860M
NVIDIA GeForce GTX 970
NVIDIA GeForce GTX 770
NVIDIA GeForce GTX 970 + GTX 770
W tabelach przedstawione zostały czasy renderowania przykładowych scen.
Tabela 1 Procesor i7-4770k, karta graficzna NVIDIA GeForce GTX 970
i7-4770k / GTX 970 | Diffuse | Glass | Glossy | SubSurf | VolumeScatter | Particles 10k | Particles 100k | Mieszane HP | Mieszane LP |
---|---|---|---|---|---|---|---|---|---|
1 [s] | 53,77 | 90,31 | 52,39 | 69,03 | 69,69 | ||||
2 [s] | 37,59 | 62,35 | 36,81 | 48,43 | 47,94 | ||||
3 [s] | 22,06 | 36,69 | 21,64 | 28,47 | 28,35 | ||||
4 [s] | 18,18 | 30,02 | 17,86 | 23,07 | 23,22 | ||||
5 [s] | 22,33 | 36,84 | 21,73 | 28,42 | 28,17 | ||||
6 [s] | 16,02 | 26,11 | 15,57 | 20,38 | 20,01 | ||||
7 [s] | 15,91 | 26,02 | 15,60 | 20,35 | 20,15 | ||||
8 [s] | 14,05 | 22,61 | 13,53 | 17,64 | 17,54 | 21,92 | 34,97 | 15,12 | 11,10 |
GPU [s] | 2,30 | 3,20 | 2,21 | 8,06 | 4,29 | 5,37 | 9,23 | 7,11 | 4,22 |
Tabela 2 Procesor i7-2670QM, karta graficzna NVIDIA GeForce GT 555m
i7-2670QM / GT555m | Diffuse | Glass | Glossy | SubSurf | VolumeScatter | Particles 10k | Particles 100k | Mieszane HP | Mieszane LP |
---|---|---|---|---|---|---|---|---|---|
1 [s] | 81,30 | 136,30 | 180,10 | 145,00 | 143,90 | ||||
2 [s] | 61,50 | 104,40 | 79,70 | 104,50 | 86,80 | ||||
3 [s] | 35,05 | 59,26 | 35,15 | 45,82 | 45,21 | ||||
4 [s] | 27,74 | 47,07 | 27,81 | 36,13 | 36,14 | ||||
5 [s] | 39,87 | 68,81 | 40,02 | 52,70 | 52,12 | ||||
6 [s] | 26,14 | 42,47 | 25,46 | 36,50 | 39,22 | ||||
7 [s] | 25,58 | 42,63 | 26,82 | 36,47 | 32,77 | ||||
8 [s] | 20,84 | 35,73 | 21,01 | 27,68 | 29,07 | 42,18 | 72,10 | 26,48 | 21,37 |
GPU [s] | 18,23 | 29,16 | 17,55 | 45,57 | 41,90 | 50,69 | 75,20 | 35,99 | 30,19 |
Tabela 3 Procesor i7-4710HQ, karta graficzna NVIDIA GeForce GTX860m
i7 4710HQ / GTX 860m | Diffuse | Glass | Glossy | SubSurf | VolumeScatter | Particles 10k | Particles 100k | Mieszane HP | Mieszane LP |
---|---|---|---|---|---|---|---|---|---|
1 [s] | 71,58 | 119,38 | 70,09 | 91,55 | 92,32 | ||||
2 [s] | 50,59 | 84,10 | 49,60 | 65,08 | 64,32 | ||||
3 [s] | 29,68 | 49,28 | 29,16 | 38,18 | 38,01 | ||||
4 [s] | 23,98 | 39,81 | 23,53 | 30,71 | 30,97 | ||||
5 [s] | 29,71 | 49,35 | 29,22 | 38,12 | 38,04 | ||||
6 [s] | 21,12 | 35,04 | 20,83 | 27,08 | 27,08 | ||||
7 [s] | 21,09 | 35,03 | 20,82 | 27,03 | 27,01 | ||||
8 [s] | 18,92 | 31,34 | 18,56 | 24,23 | 24,40 | 30,24 | 48,71 | 20,54 | 15,90 |
GPU [s] | 7,37 | 12,36 | 7,18 | 53,01 | 16,66 | 17,60 | 25,38 | 21,33 | 17,51 |
Tabela 4 Procesor i3-2310M, karta graficzna NVIDIA GeForce GT 540m
i3-2310M /GT540m | Diffuse | Glass | Glossy | SubSurf | VolumeScatter | Particles 10k | Particles 100k | Mieszane HP | Mieszane LP |
---|---|---|---|---|---|---|---|---|---|
1 [s] | 131,68 | 220,71 | 129,03 | 167,21 | 164,22 | ||||
2 [s] | 94,69 | 155,11 | 91,39 | 120,71 | 117,68 | ||||
3 [s] | 55,46 | 93,18 | 54,96 | 71,22 | 70,53 | ||||
4 [s] | 66,09 | 110,98 | 65,11 | 84,29 | 84,44 | 105,79 | 166,37 | 70,67 | 55,38 |
GPU [s] | 31,81 | 49,72 | 29,79 | 79,69 | 70,51 | 81,94 | 121,01 | 61,06 | 51,35 |
Tabela 5 Procesor AMD Athlon II P340 Dual-Core
AMD Athlon II P340 Dual-Core | Diffuse | Glass | Glossy | SubSurf | VolumeScatter | Particles 10k | Particles 100k | Mieszane HP | Mieszane LP |
---|---|---|---|---|---|---|---|---|---|
1 [s] | 182,78 | 270,05 | 173,84 | 220,41 | 210,32 | ||||
2 [s] | 116,47 | 190,93 | 118,35 | 120,71 | 150,15 | 270,08 | 482,79 | 167,27 | 125.82 |
Dla powyższych tabel stworzone zostały również wykresy, które w przejrzysty sposób reprezentują wyniki badań.
Wykres 1 Czasu renderu scen dla Tabeli 1.
Wykres 2 Czasu renderu scen dla Tabeli 2.
Wykres 3 Czasu renderu scen dla Tabeli 3.
Wykres 4 Czasu renderu scen dla Tabeli 4.
Wykres 5 Czasu renderu scen dla Tabeli 5.
Wygląd scen po wykonaniu renderowania dla różnych materiałów, ilości próbek i siatek.
Rysunek 1 Diffuse_LP_watek1_0001
Rysunek 2 Glass_LP_watek1_0001
Rysunek 3 Glossy _LP_watek1_0001
Rysunek 4 SubSurf_LP_watek1_0001
Rysunek 5 VolumeScattering_LP_watek1_0001
Rysunek 6 Particles10k_CPU_0001
Rysunek 7 Particles100k_CPU_0001
Rysunek 8 High_poly_CPU_0001
Rysunek 9 Low_poly_CPU_0001
Rysunek 10 Diffuse_LP_GPU
Rysunek 11 Diffuse_LP_GPU
Rysunek 12 Diffuse_LP_GPU
Rysunek 13 Diffuse_LP_GPU
Rysunek 14 Diffuse_LP_GPU
Rysunek 15 Particles10k_GPU
Rysunek 16 Particles10k_GPU
Rysunek 17 High_poly_GPU
Rysunek 18 High_poly_GPU
Podczas analizy wyników zauważyć można że dla większości procesorów najdłuższy czas renderowania występuje przy materiale GLASS, niezależnie od ilości wykorzystanych wątków. Natomiast dla procesorów kart graficznych (GPU) wykorzystanych w badaniu najdłużej wykonywane było renderowanie materiału SubSurf. Jak można się było spodziewać GPU w większości testów było szybsze, a niżeli CPU. Wyjątkiem jest test przeprowadzony przy użyciu procesora i7-2670QM działającego na 8 wątkach i karty graficznej NVIDIA GeForce GT 555m, gdzie średni czas wykonania polecenia był krótszy na wspomnianym wcześniej procesorze. Podczas testów zauważyliśmy również, że czas renderowania scen z wykorzystanie 4 wątków procesora jest krótszy, a niżeli z wykorzystaniem 5 wątków. Badanie te zawierało również test dla różnych ilości siatek i próbek, podczas tych badanie zgodnie z naszymi oczekiwaniami czasy renderowania scen były krótsze przy wykorzystaniu GPU , jednak również w tym teście karta graficzna NVIDIA GeForce GT 555m wypada gorzej niż procesora i7-2670QM działającego na 8 wątkach. Po przeprowadzonym badaniu można jednak wywnioskować, że karty graficzne które są kompatybilne z programem „ Blender ” i wykorzystane w tym teście spisują się lepiej podczas renderowania niż wykorzystane procesory.