DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights

Background. As newer computers are constructed, more advanced and powerful hardware come along with them. This leads to the enhancement of various program attributes and features by corporations to get ahold of the hardware, hence, improving performance. A relatively new API which serves to facilita...

Full description

Bibliographic Details
Main Author: J'lali, Yousra
Format: Others
Language:English
Published: Blekinge Tekniska Högskola, Fakulteten för datavetenskaper 2020
Subjects:
API
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:bth-20201
id ndltd-UPSALLA1-oai-DiVA.org-bth-20201
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-bth-202012020-07-24T05:19:56ZDirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple LightsengJ'lali, YousraBlekinge Tekniska Högskola, Fakulteten för datavetenskaper2020Performance evaluationMultithreadSingle-threadParallel architectureAPIComputer SciencesDatavetenskap (datalogi)Background. As newer computers are constructed, more advanced and powerful hardware come along with them. This leads to the enhancement of various program attributes and features by corporations to get ahold of the hardware, hence, improving performance. A relatively new API which serves to facilitate such logic, is Microsoft DirectX 12. There are numerous opinions about this specific API, and to get a slightly better understanding of its capabilities with hardware utilization, this research puts it under some tests. Objectives. This article’s aim is to steadily perform tests and comparisons in order to find out which method has better performance when using DirectX 12; single-threading, or multithreading. For performance measurements, the average CPU and GPU utilizations are gathered, as well as the average FPS and the speed of which it takes to perform the Render function. When all results have been collected, the comparison between the methods are assessed. Methods. In this research, the main method which is being used is experiments. To find out the performance differences between the two methods, they must undergo different trials while data is gathered. There are four experiments for the single-threaded and multithreaded application, respectively. Each test varies in the number of lights and objects that are rendered in the simulation environment, gradually escalading from 50; then 100; 1000; and lastly, 5000. Results. A similar pattern was discovered throughout the experiments, with all of the four tests, where the multithreaded application used considerably more of the CPU than the single-threaded version. And despite there being less simultaneous work done by the GPU in the one-threaded program, it appeared to be using more GPU utilization than multithreading. Furthermore, the system with many threads tended to perform the Render function faster than its counterpart, regardless of which test was executed. Nevertheless, both applications never differed in FPS. Conclusion. Half of the hypotheses stated in this article were contradicted after some unexpected tun of events. It was believed that the multithreaded system would utilize less of the CPU and more of the GPU. Instead, the outcome contradicted the hypotheses, thus, opposing them. Another theory believed that the system with multiple threads would execute the Render function faster than the other version, a hypothesis that was strongly supported by the results. In addition to that, more objects and lights inserted into the scene did increased the applications’ utilization in both the CPU and GPU, which also supported another hypothesis. In conclusion, the multithreaded program performs faster but still has no gain in FPS compared to single-threading. The multithreaded version also utilizes more CPU and less GPU Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:bth-20201application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic Performance evaluation
Multithread
Single-thread
Parallel architecture
API
Computer Sciences
Datavetenskap (datalogi)
spellingShingle Performance evaluation
Multithread
Single-thread
Parallel architecture
API
Computer Sciences
Datavetenskap (datalogi)
J'lali, Yousra
DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
description Background. As newer computers are constructed, more advanced and powerful hardware come along with them. This leads to the enhancement of various program attributes and features by corporations to get ahold of the hardware, hence, improving performance. A relatively new API which serves to facilitate such logic, is Microsoft DirectX 12. There are numerous opinions about this specific API, and to get a slightly better understanding of its capabilities with hardware utilization, this research puts it under some tests. Objectives. This article’s aim is to steadily perform tests and comparisons in order to find out which method has better performance when using DirectX 12; single-threading, or multithreading. For performance measurements, the average CPU and GPU utilizations are gathered, as well as the average FPS and the speed of which it takes to perform the Render function. When all results have been collected, the comparison between the methods are assessed. Methods. In this research, the main method which is being used is experiments. To find out the performance differences between the two methods, they must undergo different trials while data is gathered. There are four experiments for the single-threaded and multithreaded application, respectively. Each test varies in the number of lights and objects that are rendered in the simulation environment, gradually escalading from 50; then 100; 1000; and lastly, 5000. Results. A similar pattern was discovered throughout the experiments, with all of the four tests, where the multithreaded application used considerably more of the CPU than the single-threaded version. And despite there being less simultaneous work done by the GPU in the one-threaded program, it appeared to be using more GPU utilization than multithreading. Furthermore, the system with many threads tended to perform the Render function faster than its counterpart, regardless of which test was executed. Nevertheless, both applications never differed in FPS. Conclusion. Half of the hypotheses stated in this article were contradicted after some unexpected tun of events. It was believed that the multithreaded system would utilize less of the CPU and more of the GPU. Instead, the outcome contradicted the hypotheses, thus, opposing them. Another theory believed that the system with multiple threads would execute the Render function faster than the other version, a hypothesis that was strongly supported by the results. In addition to that, more objects and lights inserted into the scene did increased the applications’ utilization in both the CPU and GPU, which also supported another hypothesis. In conclusion, the multithreaded program performs faster but still has no gain in FPS compared to single-threading. The multithreaded version also utilizes more CPU and less GPU
author J'lali, Yousra
author_facet J'lali, Yousra
author_sort J'lali, Yousra
title DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
title_short DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
title_full DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
title_fullStr DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
title_full_unstemmed DirectX 12: Performance Comparison Between Single- and Multithreaded Rendering when Culling Multiple Lights
title_sort directx 12: performance comparison between single- and multithreaded rendering when culling multiple lights
publisher Blekinge Tekniska Högskola, Fakulteten för datavetenskaper
publishDate 2020
url http://urn.kb.se/resolve?urn=urn:nbn:se:bth-20201
work_keys_str_mv AT jlaliyousra directx12performancecomparisonbetweensingleandmultithreadedrenderingwhencullingmultiplelights
_version_ 1719332049996742656