Results 1 - 10
of
30
Efficient Maximal Poisson-Disk Sampling
, 2011
"... We solve the problem of generating a uniform Poisson-disk sampling that is both maximal and unbiased over bounded non-convex 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 Poisson-disk sampling that is both maximal and unbiased over bounded non-convex 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, near-maximal 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 dart-throwing 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 parallel-friendly nature of our method, which achieves 2.4 × the performance of our serial version.
Exposing fine-grained 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 coarse-grained 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 coarse-grained tasks suitable for distributed computers with traditional processing cores. However, accelerating multigrid on massively parallel throughput-oriented processors, such as the GPU, de-mands algorithms with abundant fine-grained parallelism. In this paper, we develop a parallel algebraic multigrid method which exposes substantial fine-grained parallelism in both the construc-tion 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 highest-quality 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 Monte-Carlo 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 off-linerenderinginmovieproductionto interactivevideogames.Theabilitytoaddcomplexandintricate detailsatlowmemoryandauthoringcostisone of its main attractions. This state-of-the-art report is motivated by the inherent importance of noise i ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
ProceduralnoisefunctionsarewidelyusedinComputerGraphics, from off-linerenderinginmovieproductionto interactivevideogames.Theabilitytoaddcomplexandintricate detailsatlowmemoryandauthoringcostisone of its main attractions. This state-of-the-art report is motivated by the inherent importance of noise in graphics, thewidespreaduseofnoiseinindustry,andthefactthatmany recentresearchdevelopmentsjustifytheneedforan up-to-datesurvey.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 user-defined spectra. In this paper, we describe an algorithm for generating point samples that match a user-defined 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 GPU-based 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, fromoff-linerenderinginmovieproductionto 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, fromoff-linerenderinginmovieproductionto 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 up-to-date 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 128-bit state and an expected period length of 2127. Unlike most non-linear 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 128-bit state and an expected period length of 2127. Unlike most non-linear 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 in-dependently. 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 Tyche-i to the XORWOW and TEA8 generators in CPUs and GPUs. Our comparisons show that Tyche and Tyche-i simultaneously achieve high performance and excellent statistical properties, particularly when compared to other nonlinear generators.
GPU-Accelerated 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 high-performance 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 high-performance 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 counter-based PRNGs are ideally suited to modern multicore CPUs, GPUs, clusters, and special-purpose hardware because they vectorize and parallelize well, and require little or no memory for state. We introduce several counter-based 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 single-chip performance: Philox is faster than the CURAND library on a single NVIDIA GPU.