3 research outputs found

    Potential benefits of a block-space GPU approach for discrete tetrahedral domains

    Full text link
    The study of data-parallel domain re-organization and thread-mapping techniques are relevant topics as they can increase the efficiency of GPU computations when working on spatial discrete domains with non-box-shaped geometry. In this work we study the potential benefits of applying a succint data re-organization of a tetrahedral data-parallel domain of size O(n3)\mathcal{O}(n^3) combined with an efficient block-space GPU map of the form g:NN3g:\mathbb{N} \rightarrow \mathbb{N}^3. Results from the analysis suggest that in theory the combination of these two optimizations produce significant performance improvement as block-based data re-organization allows a coalesced one-to-one correspondence at local thread-space while g(λ)g(\lambda) produces an efficient block-space spatial correspondence between groups of data and groups of threads, reducing the number of unnecessary threads from O(n3)O(n^3) to O(n2ρ3)O(n^2\rho^3) where ρ\rho is the linear block-size and typically ρ3n\rho^3 \ll n. From the analysis, we obtained that a block based succint data re-organization can provide up to 2×2\times improved performance over a linear data organization while the map can be up to 6×6\times more efficient than a bounding box approach. The results from this work can serve as a useful guide for a more efficient GPU computation on tetrahedral domains found in spin lattice, finite element and special n-body problems, among others

    Block-space GPU Mapping for Embedded Sierpi\'nski Gasket Fractals

    Full text link
    This work studies the problem of GPU thread mapping for a Sierpi\'nski gasket fractal embedded in a discrete Euclidean space of n×nn \times n. A block-space map λ:ZE2ZF2\lambda: \mathbb{Z}_{\mathbb{E}}^{2} \mapsto \mathbb{Z}_{\mathbb{F}}^{2} is proposed, from Euclidean parallel space E\mathbb{E} to embedded fractal space F\mathbb{F}, that maps in O(log2log2(n))\mathcal{O}(\log_2 \log_2(n)) time and uses no more than O(nH)\mathcal{O}(n^\mathbb{H}) threads with H1.58...\mathbb{H} \approx 1.58... being the Hausdorff dimension, making it parallel space efficient. When compared to a bounding-box map, λ(ω)\lambda(\omega) offers a sub-exponential improvement in parallel space and a monotonically increasing speedup once n>n0n > n_0. Experimental performance tests show that in practice λ(ω)\lambda(\omega) can produce performance improvement at any block-size once n>n0=28n > n_0 = 2^8, reaching approximately 10×10\times of speedup for n=216n=2^{16} under optimal block configurations.Comment: 7 pages, 8 Figure

    Efficient GPU Thread Mapping on Embedded 2D Fractals

    Full text link
    This work proposes a new approach for mapping GPU threads onto a family of discrete embedded 2D fractals. A block-space map λ:ZE2ZF2\lambda: \mathbb{Z}_{\mathbb{E}}^{2} \mapsto \mathbb{Z}_{\mathbb{F}}^{2} is proposed, from Euclidean parallel space E\mathbb{E} to embedded fractal space F\mathbb{F}, that maps in O(log2log2(n))\mathcal{O}(\log_2 \log_2(n)) time and uses no more than O(nH)\mathcal{O}(n^\mathbb{H}) threads with H\mathbb{H} being the Hausdorff dimension of the fractal, making it parallel space efficient. When compared to a bounding-box (BB) approach, λ(ω)\lambda(\omega) offers a sub-exponential improvement in parallel space and a monotonically increasing speedup nn0n \ge n_0. The Sierpinski gasket fractal is used as a particular case study and the experimental performance results show that λ(ω)\lambda(\omega) reaches up to 9×9\times of speedup over the bounding-box approach. A tensor-core based implementation of λ(ω)\lambda(\omega) is also proposed for modern GPUs, providing up to 40%\sim40\% of extra performance. The results obtained in this work show that doing efficient GPU thread mapping on fractal domains can significantly improve the performance of several applications that work with this type of geometry.Comment: 20 Pages. arXiv admin note: text overlap with arXiv:1706.0455
    corecore