tRemoved legacy raytracer folder, moved rt doc into main doc - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
HTML git clone git://src.adamsgaard.dk/sphere
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
DIR commit d30540ae62abcfd984b3eda396cf534e72aaad66
DIR parent 5cd210a9136c5c2dfee90711cedf294fc6f0484e
HTML Author: Anders Damsgaard <adc@geo.au.dk>
Date: Tue, 18 Dec 2012 13:58:29 +0100
Removed legacy raytracer folder, moved rt doc into main doc
Diffstat:
R raytracer/doc/IEEEtran.cls -> doc/… | 0
R raytracer/doc/np-performance.pdf -… | 0
R raytracer/doc/np-performance.txt -… | 0
R raytracer/doc/np500.png -> doc/ray… | 0
R raytracer/doc/np50000.png -> doc/r… | 0
R raytracer/doc/px-performance.pdf -… | 0
R raytracer/doc/px-performance.txt -… | 0
A doc/raytracer/raytracer.pdf | 0
A doc/raytracer/raytracer.tex | 264 +++++++++++++++++++++++++++++++
D raytracer/Makefile | 101 -------------------------------
D raytracer/README | 43 ------------------------------
D raytracer/colorbar.h | 22 ----------------------
D raytracer/doc/.DS_Store | 0
D raytracer/doc/.raytracer.tex.swp | 0
D raytracer/doc/bloopers/black.png | 0
D raytracer/doc/bloopers/colorful.png | 0
D raytracer/doc/bloopers/cpu_wrong_c… | 0
D raytracer/doc/bloopers/twisted.png | 0
D raytracer/doc/bloopers/wrong_order… | 0
D raytracer/doc/raytracer.pdf | 0
D raytracer/doc/raytracer.tex | 317 -------------------------------
D raytracer/header.h | 26 --------------------------
D raytracer/main.cpp | 264 -------------------------------
D raytracer/o-ppm.cpp | 30 ------------------------------
D raytracer/o-ppm.h | 7 -------
D raytracer/render_all_outputs_CPU.sh | 27 ---------------------------
D raytracer/render_all_outputs_GPU.sh | 29 -----------------------------
D raytracer/rt-kernel-cpu.cpp | 273 -------------------------------
D raytracer/rt-kernel-cpu.h | 14 --------------
D raytracer/rt-kernel.cu | 454 -------------------------------
D raytracer/rt-kernel.h | 35 -------------------------------
D raytracer/rt_GPU_init_pres.sh | 36 -------------------------------
D raytracer/rt_GPU_pres.sh | 36 -------------------------------
D raytracer/rt_GPU_tall_pres.sh | 36 -------------------------------
34 files changed, 264 insertions(+), 1750 deletions(-)
---
DIR diff --git a/raytracer/doc/IEEEtran.cls b/doc/raytracer/IEEEtran.cls
DIR diff --git a/raytracer/doc/np-performance.pdf b/doc/raytracer/np-performance.pdf
Binary files differ.
DIR diff --git a/raytracer/doc/np-performance.txt b/doc/raytracer/np-performance.txt
DIR diff --git a/raytracer/doc/np500.png b/doc/raytracer/np500.png
Binary files differ.
DIR diff --git a/raytracer/doc/np50000.png b/doc/raytracer/np50000.png
Binary files differ.
DIR diff --git a/raytracer/doc/px-performance.pdf b/doc/raytracer/px-performance.pdf
Binary files differ.
DIR diff --git a/raytracer/doc/px-performance.txt b/doc/raytracer/px-performance.txt
DIR diff --git a/doc/raytracer/raytracer.pdf b/doc/raytracer/raytracer.pdf
Binary files differ.
DIR diff --git a/doc/raytracer/raytracer.tex b/doc/raytracer/raytracer.tex
t@@ -0,0 +1,264 @@
+\documentclass[journal]{IEEEtran}
+
+
+\ifCLASSINFOpdf
+ \usepackage[pdftex]{graphicx}
+\else
+ \usepackage[dvips]{graphicx}
+\fi
+
+\usepackage{color}
+
+\usepackage{url}
+%\usepackage{showkeys}
+\usepackage{siunitx}
+
+% correct bad hyphenation here
+\hyphenation{op-tical net-works semi-conduc-tor}
+
+\definecolor{DarkGreen}{rgb}{0,0.45,0.08}
+\usepackage{listings}
+\lstset{language=C++,breaklines=true,breakatwhitespace=true,basicstyle=\small,prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, commentstyle=\color{DarkGreen}, tabsize=4}
+
+
+\begin{document}
+\title{CUDA raytracing algorithm for visualizing\\ discrete element model output}
+
+\author{Anders Damsgaard Christensen,~\IEEEmembership{20062213}
+\thanks{Contact: {anders.damsgaard@geo.au.dk}}%
+\thanks{Webpage: {http://users-cs.au.dk/adc}}%
+\thanks{Manuscript, last revision: \today.}}
+
+% The paper headers
+\markboth{Data Parallel Computing 2011}{Christensen: CUDA raytracing algorithm for visualizing DEM output}
+
+% make the title area
+\maketitle
+
+
+\begin{abstract}
+%\boldmath
+A raytracing algorithm is constructed using the CUDA API for visualizing output from a CUDA discrete element model, which outputs spatial information in dynamic particle systems.
+The raytracing algorithm is optimized with constant memory and compilation flags, and performance is measured as a function of the number of particles and the number of pixels. The execution time is compared to equivalent CPU code, and the speedup under a variety of conditions is found to have a mean value of 55.6 times.
+\end{abstract}
+\begin{IEEEkeywords}
+CUDA, discrete element method, raytracing
+\end{IEEEkeywords}
+
+
+\IEEEpeerreviewmaketitle
+
+
+\section{Introduction}
+\IEEEPARstart{V}{isualizing} systems containing many spheres using traditional object-order graphics rendering can often result in very high computational requirements, as the usual automated approach is to construct a meshed surface with a specified resolution for each sphere. The memory requirements are thus quite high, as each surface will consist of many vertices. Raytracing \cite{Whitted:1980} is a viable alternative, where spheric entities are saved as data structures with a centre coordinate and a radius. The rendering is performed on the base of these values, which results in a perfectly smooth surfaced sphere. To accelerate the rendering, the algorithm is constructed utilizing the CUDA API \cite{Nvidia-1:2010}, where the problem is divided into $n\times m$ threads, corresponding to the desired output image resolution. Each thread iterates through all particles and applies a simple shading model to determine the final RGB values of the pixel.
+
+Previous studies of GPU or CUDA implementations of ray tracing algorithms reported major speedups, compared to corresponding CPU applications (e.g. \cite{Horn:2007,Shih:2009,Popov:2007,Luebke:2008}). None of the software was however found to be open-source and GPL licensed, so a simple raytracer was constructed, customized to render particles, where the data was stored in a specific data format.
+
+\subsection{Discrete Element Method}
+The input particle data to the raytracer is the output of a custom CUDA-based Discrete Element Method (DEM) application currently in development. The DEM model is used to numerically simulate the response of a drained, soft, granular sediment bed upon normal stresses and shearing velocities similar to subglacial environments under ice streams \cite{Evans:2006}. In contrast to laboratory experiments on granular material, the discrete element method \cite{Cundall:1979} approach allows close monitoring of the progressive deformation, where all involved physical parameters of the particles and spatial boundaries are readily available for continuous inspection.
+
mx1.adamsgaard.dk:70 /src/sphere/commit/d30540ae62abcfd984b3eda396cf534e72aaad66.gph:127: line too long