Referat:
The leader of the master's work:
Ph.D., assistant professor, Department of Applied Mathematics and Information Science Zori Sergey
The target of this work is to analyze the methods and algorithms of realistic visualization of three-dimensional scene on a class of ray-tracing, their general characteristics, and to study the possibility of their use for the scenes with the functional description.
Object of exploring of this work — methods of realistic visualization of three-dimensional scene.
Subject of exploring — realization the ray-tracing methods on parallel GPU technology.
3D visualization — is an accurate representation of various objects in the volume. Visualization of objects — with a two-or three-dimensional graphics realism (usually photo-realistic) graphics, which copy all the proportions and details of the final product or building, so as to get a comprehensive visual representation before it’s actually real appearance.
Recently, relay parallel computing shifted to the mass market,in one way or another connected with three-dimensional games. Universal devices with multi-core processors for parallel vector algorithms used in 3D-graphics, reach their high peak performance, which generaly-purpose processors simply can not reach. Of course, the maximum speed is achieved only in a number of similar cases and has some limitations, but such devices have already started quite widely using in spheres where they were not intended at first.
An excellent example of such a parallel processor is a processor Cell, developed by the alliance of Sony-Toshiba-IBM and used in the game console, Sony PlayStation 3, as well as all modern video cards from NVIDIA and AMD.
Exploring of the possibility of using parallel computing technology — is actually the aim of this work.
Ray tracing — method of computer graphics, allowing you to create photorealistic images of any three-dimensional scenes. Ray tracing simulates the passage of light rays through the scene shown. Photorealism is achieved by means of mathematical modeling of the optical properties of light and its interaction with objects. But to obtain high-quality realistic images required considerable time and computer’s power.
The task of implementation of ray tracing are trying to solve a lot of scientists: Horn, D. R., Sugerman, J., Houston, M., and Hanrahan have implemented the search algorithm for kd tree with a short stack and pack-rays, Popov — the algorithm without using the stack and packet rays.
For 3D-video accelerators a few years ago appeared the first technology of non-graphical calculations general purpose GPGPU (General-Purpose computation on GPUs).
Ray tracing
CUDA technology
Animation was created using mp_gif_animator, has a volume 149Kb, consists of 5 frames and lasts 35 seconds
GPU computing evolved and developed very quickly. The company NVIDIA, which is one of the main video chip manufacturers, has developed a platform called CUDA (Compute Unified Device Architecture). Platform CUDA — C-like programming language with its compiler and libraries for computing on the GPU. This GPU programming model is made according to the direct access to hardware capabilities of graphics cards.
The increase in processor performance is increasingly happening by placing multiple cores into one chip. CPU core designed for the execution of a serial stream of instructions with maximum efficiency, and GPU designed for the rapid execution of a large number of concurrently executing threads of instructions.
GPUs has simple and paralleling tasks premordialy. The video chip accepts input group of polygons, conducts all the necessary operations, and the output gives pixels. Processing of polygons and pixels are independent, they can be processed in parallel, separately from each other. Therefore, because of the initially parallel organization of the GPU uses a large number of executive units, which are easy to download, in contrast to the sequential flow of instructions to the CPU. In addition, modern GPU can also perform more than one instruction per clock (dual issue).
Software Development using CUDA technology enables more effective in addressing the challenges associated with a high degree of parallelism, since the foundation of computer architecture CUDA is the concept: one team on the set of data — SIMD (Single Instruction Multiple Data).
This allows you to solve problems with high computational complexity, for example, certain tasks realistic 3D-graphics — ray-tracing in real time, 3D-modeling, visualization of three-dimensional scenes with the calculation of physically-realistic lighting and complex materials, as well as improve the efficiency of existing methods to work with graphics.
Graphics chips, in contrast to the universal, CPU designed for parallel computing with a large number of arithmetic operations. And a much larger number of transistors on GPU works for its intended purpose — processing arrays of data, but does not manage the execution (flow control) few consistent computing threads. This scheme shows how many seats in the CPU and GPU is a diverse logic:
As a result, the basis for the effective use of power of the GPU in scientific and other non-graphical calculations is the parallelization of algorithms for hundreds of execution units available in video chips.
The use of CUDA technology enables parallelized computing, which will increase the speed of processing methods of three-dimensional objects and scenes which allow better and more effectively pursue realism created scenes that provide opportunities for a more detailed calculation of scenes and objects, using additional algorithms work with objects, such as better quality drawing reflections and shadows, object representation unconventional means, such as a functional description.
Importance is the fact that the operations the computation is done on the same processor as their subsequent drawing, which also shortens the time of the operation and increases accuracy, since the results of calculations are floating point numbers.
The earliest attempts at such applications were extremely primitive and confined to the use of certain hardware functions, such as rasterization and Z-buffering.
Key applications that are used to calculate the GPU: an analysis and image and signal processing, physics simulation, computational mathematics, computational biology, financial calculations, data bases, the dynamics of gases and liquids, cryptography
The method of ray tracing allows the creation of high-quality, colorful three-dimensional scenes, moreover, it lends itself to parallelization, which enables him to get a good realization of applying technology to CUDA.
Presented by NVIDIA hardware and software architecture for computing on CUDA video chips are well suited for a wide range of tasks with high parallelism. CUDA works on a large number of GPUs NVIDIA, and improves the programming model of GPU, simplifying it and adding a large number of features, such as shared memory, the ability to synchronize flow calculations with double precision and integer operations.
The wide spread of video cards in the world, the development of parallel computing on the GPU would have profound effects on the industry of high-performance computing.
General purpose processors are developing rather slowly, they have no such jumps in productivity. The future of computing is clearly set for the parallel algorithms, almost all new solutions and initiatives are focused in this direction.
Of course, GPU does not replace the CPU. In their present form they are not designed for this. Now video chips are moving gradually towards the CPU, becoming more and more universal (floating-point calculations with single and double precision, integer calculations) and the CPU are becoming more "parallel", acquiring a large number of cores, multi-threading technology, not to mention the appearance of blocks of SIMD and projects of heterogeneous processors. Most likely, GPU and CPU in the future, simply merge.
One of the few shortcomings CUDA — poor tolerability.
The use of CUDA technology’s work with three-dimensional graphics will effectively solve problems with large computational complexity, for example, certain tasks realistic 3D-graphics — ray-tracing in real time, 3D-modeling, visualization of three-dimensional scenes with the calculation of physically-realistic lighting and sophisticated materials, and increase the efficiency of existing methods of work with graphics, to improve the quality and realism of the synthesized scene, cheaper equipment for 3D-graphics systems.