Results 1  10
of
30
Efficient Maximal PoissonDisk Sampling
, 2011
"... We solve the problem of generating a uniform Poissondisk sampling that is both maximal and unbiased over bounded nonconvex domains. To our knowledge this is the first provably correct algorithm with time and space dependent only on the number of points produced. Our method has two phases, both b ..."
Abstract

Cited by 26 (10 self)
 Add to MetaCart
We solve the problem of generating a uniform Poissondisk sampling that is both maximal and unbiased over bounded nonconvex domains. To our knowledge this is the first provably correct algorithm with time and space dependent only on the number of points produced. Our method has two phases, both based on classical dartthrowing. The first phase uses a background grid of square cells to rapidly create an unbiased, nearmaximal covering of the domain. The second phase completes the maximal covering by calculating the connected components of the remaining uncovered voids, and by using their geometry to efficiently place unbiased samples that cover them. The second phase converges quickly, overcoming a common difficulty in dartthrowing methods. The deterministic memory is O(n) and the expected running time is O(n log n), where n is the output size, the number of points in the final sample. Our serial implementation verifies that the log n dependence is minor, and nearly O(n) performance for both time and memory is achieved in practice. We also present a parallel implementation on GPUs to demonstrate the parallelfriendly nature of our method, which achieves 2.4 × the performance of our serial version.
Exposing finegrained parallelism in algebraic multigrid methods
, 2012
"... Algebraic multigrid methods for large, sparse linear systems are a necessity in many computational simulations, yet parallel algorithms for such solvers are generally decomposed into coarsegrained tasks suitable for distributed computers with traditional processing cores. However, accelerating mu ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
(Show Context)
Algebraic multigrid methods for large, sparse linear systems are a necessity in many computational simulations, yet parallel algorithms for such solvers are generally decomposed into coarsegrained tasks suitable for distributed computers with traditional processing cores. However, accelerating multigrid on massively parallel throughputoriented processors, such as the GPU, demands algorithms with abundant finegrained parallelism. In this paper, we develop a parallel algebraic multigrid method which exposes substantial finegrained parallelism in both the construction of the multigrid hierarchy as well as the cycling or solve stage. Our algorithms are expressed in terms of scalable parallel primitives that are efficiently implemented on the GPU. The resulting solver achieves an average speedup of 1.8 × in the setup phase and 5.7 × in the cycling phase when compared to a representative CPU implementation.
GPU Random Numbers via the Tiny Encryption Algorithm
, 2010
"... Random numbers are extensively used on the GPU. As more computation is ported to the GPU, it can no longer be treated as rendering hardware alone. Random number generators (RNG) are expected to cater general purpose and graphics applications alike. Such diversity adds to expected requirements of a R ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
Random numbers are extensively used on the GPU. As more computation is ported to the GPU, it can no longer be treated as rendering hardware alone. Random number generators (RNG) are expected to cater general purpose and graphics applications alike. Such diversity adds to expected requirements of a RNG. A good GPU RNG should be able to provide repeatability, random access, multiple independent streams, speed, and random numbers free from detectable statistical bias. A specific application may require some if not all of the above characteristics at one time. In particular, we hypothesize that not all algorithms need the highestquality random numbers, so a good GPU RNG should provide a speed quality tradeoff that can be tuned for fast low quality or slower high quality random numbers. We propose that the Tiny Encryption Algorithm satisfies all of the requirements of a good GPU Pseudo Random Number Generator. We compare our technique against previous approaches, and present an evaluation using standard randomness test suites as well as Perlin noise and a MonteCarlo shadow algorithm. We show that the quality of random number generation directly affects the quality of the noise produced, however, good quality noise can still be produced with a lower quality random number generator.
State of the Art in Procedural Noise Functions
, 2010
"... ProceduralnoisefunctionsarewidelyusedinComputerGraphics, from offlinerenderinginmovieproductionto interactivevideogames.Theabilitytoaddcomplexandintricate detailsatlowmemoryandauthoringcostisone of its main attractions. This stateoftheart report is motivated by the inherent importance of noise i ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
ProceduralnoisefunctionsarewidelyusedinComputerGraphics, from offlinerenderinginmovieproductionto interactivevideogames.Theabilitytoaddcomplexandintricate detailsatlowmemoryandauthoringcostisone of its main attractions. This stateoftheart report is motivated by the inherent importance of noise in graphics, thewidespreaduseofnoiseinindustry,andthefactthatmany recentresearchdevelopmentsjustifytheneedforan uptodatesurvey.Ourgoalistoprovidebothavaluableentrypointinto thefieldofproceduralnoisefunctions,as wellasacomprehensiveviewofthefieldtotheinformedreader. Inthisreport,wecoverproceduralnoisefunctions in all their aspects. We outline recent advances in research on this topic, discussing and comparing recent and well established methods. We first formally define procedural noise functions based on stochastic processes and then classify and review existing procedural noise functions. We discuss how procedural noise functions are used for modeling and how they are applied on surfaces. We then introduce analysis tools and apply them to evaluate andcompare the major approaches tonoisegeneration. We finally identify several directions for future work.
Point Sampling with General Noise Spectrum
"... Point samples with different spectral noise properties (often defined using color names such as white, blue, green, and red) are important for many science and engineering disciplines including computer graphics. While existing techniques can easily produce white and blue noise samples, relatively l ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Point samples with different spectral noise properties (often defined using color names such as white, blue, green, and red) are important for many science and engineering disciplines including computer graphics. While existing techniques can easily produce white and blue noise samples, relatively little is known for generating other noise patterns. In particular, no single algorithm is available to generate different noise patterns according to userdefined spectra. In this paper, we describe an algorithm for generating point samples that match a userdefined Fourier spectrum function. Such a spectrum function can be either obtained from a known sampling method, or completely constructed by the user. Our key idea is to convert the Fourier spectrum function into a differential distribution function that describes the samples ’ local spatial statistics; we then use a gradient descent solver to iteratively compute a sample set that matches the target differential distribution function. Our algorithm can be easily modified to achieve adaptive sampling, and we provide a GPUbased implementation. Finally, we present a variety of different sample patterns obtained using our algorithm, and demonstrate suitable applications.
A survey Of procedural Noise functions
 VOLUME0(1981),NUMBER 0PP. 1–20 COMPUTER GRAPHICS FORUM
, 1981
"... ProceduralnoisefunctionsarewidelyusedinComputerGraphics, fromofflinerenderinginmovieproductionto interactivevideogames. Theabilitytoaddcomplexand intricatedetailsatlowmemory and authoring cost is one of its main attractions. This survey is motivated by the inherent importance of noise in graphics, ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
ProceduralnoisefunctionsarewidelyusedinComputerGraphics, fromofflinerenderinginmovieproductionto interactivevideogames. Theabilitytoaddcomplexand intricatedetailsatlowmemory and authoring cost is one of its main attractions. This survey is motivated by the inherent importance of noise in graphics, the widespread use of noise in industry, and the fact that many recent research developments justify the need for an uptodate survey. Our goal is to provide both a valuable entry point into the field of procedural noise functions, as well as a comprehensive view of the field to the informed reader. In this report, we cover procedural noise functions in all their aspects. We outline recent advances in research on this topic, discussing and comparing recent and well established methods. We first formally define procedural noise functions based on stochastic processes and then classify and review existing procedural noise functions. We discuss how procedural noise functions are used for modeling and how they are applied to surfaces. We then introduce analysis tools and apply them to evaluate and compare the major approaches to noise generation. We finally identify several directions for futur work.
Random Numbers for Parallel Computers: Requirements and Methods
, 2014
"... We examine the requirements and the available methods and software to provide (or imitate) uniform random numbers in parallel computing environments. In some settings, the goal is to use parallel processors to fill up rapidly a large array of random numbers. In other settings, thousands or millions ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
We examine the requirements and the available methods and software to provide (or imitate) uniform random numbers in parallel computing environments. In some settings, the goal is to use parallel processors to fill up rapidly a large array of random numbers. In other settings, thousands or millions of independent streams of random numbers are required, each one computed on a single processing element.
Fast and small nonlinear pseudorandom number generators for computer simulation
 in: Parallel Processing and Applied Mathematics
"... Abstract. In this paper we present Tyche, a nonlinear pseudorandom number generator designed for computer simulation. Tyche has a small 128bit state and an expected period length of 2127. Unlike most nonlinear generators, Tyche is consistently fast across architectures, due to its very simple iter ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. In this paper we present Tyche, a nonlinear pseudorandom number generator designed for computer simulation. Tyche has a small 128bit state and an expected period length of 2127. Unlike most nonlinear generators, Tyche is consistently fast across architectures, due to its very simple iteration function derived from ChaCha, one of today’s fastest stream ciphers. Tyche is especially amenable for the highly parallel environments we find today, in particular for Graphics Processing Units (GPUs), where it enables a very large number of uncorrelated parallel streams running independently. For example, 216 parallel independent streams are expected to generate about 296 pseudorandom numbers each, without overlaps. Additionally, we determine bounds for the period length and parallelism of our generators, and evaluate their statistical quality and performance. We compare Tyche and the variant Tychei to the XORWOW and TEA8 generators in CPUs and GPUs. Our comparisons show that Tyche and Tychei simultaneously achieve high performance and excellent statistical properties, particularly when compared to other nonlinear generators.
GPUAccelerated Genetic Algorithms
"... Genetic algorithms are effective in solving many optimization tasks. However, the long execution time associated with it prevents its use in many domains. In this paper, we propose a new approach for parallel implementation of genetic algorithm on graphics processing units (GPUs) using CUDA programm ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Genetic algorithms are effective in solving many optimization tasks. However, the long execution time associated with it prevents its use in many domains. In this paper, we propose a new approach for parallel implementation of genetic algorithm on graphics processing units (GPUs) using CUDA programming model. We exploit the parallelism within a chromosome in addition to the parallelism across multiple chromosomes. The use of one thread per chromosome by previous efforts does not utilize the GPU resources effectively. Our approach uses multiple threads per chromosome, thereby exploiting the massively multithreaded GPU more effectively. This results in good utilization of GPU resources even at small population sizes while maintaining impressive speed up for large population sizes. Our approach is modeled after the GAlib library and is adaptable to a variety of problems. We obtain a speedup of over 1500 over the CPU on problems involving a million chromosomes. Problems of such magnitude are not ordinarily attempted due to the prohibitive computation times.
Parallel Random Numbers: As Easy as 1, 2, 3
"... ABSTRACT Most pseudorandom number generators (PRNGs) scale poorly to massively parallel highperformance computation because they are designed as sequentially dependent state transformations. We demonstrate that independent, keyed transformations of counters produce a large alternative class of PRN ..."
Abstract
 Add to MetaCart
ABSTRACT Most pseudorandom number generators (PRNGs) scale poorly to massively parallel highperformance computation because they are designed as sequentially dependent state transformations. We demonstrate that independent, keyed transformations of counters produce a large alternative class of PRNGs with excellent statistical properties (long period, no discernable structure or correlation). These counterbased PRNGs are ideally suited to modern multicore CPUs, GPUs, clusters, and specialpurpose hardware because they vectorize and parallelize well, and require little or no memory for state. We introduce several counterbased PRNGs: some based on cryptographic standards (AES, Threefish) and some completely new (Philox). All our PRNGs pass rigorous statistical tests (including TestU01's BigCrush) and produce at least 2 64 unique parallel streams of random numbers, each with period 2 128 or more. In addition to essentially unlimited parallel scalability, our PRNGs offer excellent singlechip performance: Philox is faster than the CURAND library on a single NVIDIA GPU.