ACM Transactions on Graphics· 2019Q1
Taichi: Yüksek Performanslı Seyrek Veri Yapıları İçin Veri Odaklı Bir Programlama Dili
Taichi
- 255atıf
- Q1SCImago
- 2019yıl
Kısa özet
Taichi, kullanıcıların seyrek veri yapılarının belirtimini bağımsız olarak yaparken yüksek seviyeli hesaplama kodu yazmalarına olanak tanıyan yeni bir veri odaklı programlama dilidir ve el ile optimize edilmiş uygulamalara kıyasla 10 kat daha az kod satırıyla ortalama 4.55 kat daha yüksek performans elde eder.
Yapay zekâ ile başlık ve abstract'tan üretildi; tam metin okunmaz.
Ana noktalar
- Taichi, 3B görsel hesaplamada seyrek veri yapılarını verimli bir şekilde işlemek için veri odaklı bir programlama dilidir.
- Hesaplamayı veri yapısı belirtiminden ayırır, yüksek seviyeli, veri yapısından bağımsız kod yazmaya olanak tanır.
- Kullanıcılar, özel çok seviyeli seyrek veri yapıları oluşturmak için temel seyrek bileşenleri birleştirir.
- Derleyici, yerellik, seyrekliği ve belleği otomatik olarak optimize ederek CPU'lar ve GPU'lar için paralel kod üretir.
- Taichi, kod satırlarının %10'unu kullanarak, el ile optimize edilmiş uygulamalara kıyasla ortalama 4.55 kat daha yüksek performans elde etti.
Yapay zekâ ile başlık ve abstract'tan üretildi; tam metin okunmaz.
Özet (abstract)
3D visual computing data are often spatially sparse. To exploit such sparsity, people have developed hierarchical sparse data structures, such as multi-level sparse voxel grids, particles, and 3D hash tables. However, developing and using these high-performance sparse data structures is challenging, due to their intrinsic complexity and overhead. We propose Taichi , a new data-oriented programming language for efficiently authoring, accessing, and maintaining such data structures. The language offers a high-level, data structure-agnostic interface for writing computation code. The user independently specifies the data structure. We provide several elementary components with different sparsity properties that can be arbitrarily composed to create a wide range of multi-level sparse data structures. This decoupling of data structures from computation makes it easy to experiment with different data structures without changing computation code, and allows users to write computation as if they are working with a dense array. Our compiler then uses the semantics of the data structure and index analysis to automatically optimize for locality, remove redundant operations for coherent accesses, maintain sparsity and memory allocations, and generate efficient parallel and vectorized instructions for CPUs and GPUs. Our approach yields competitive performance on common computational kernels such as stencil applications, neighbor lookups, and particle scattering. We demonstrate our language by implementing simulation, rendering, and vision tasks including a material point method simulation, finite element analysis, a multigrid Poisson solver for pressure projection, volumetric path tracing, and 3D convolution on sparse grids. Our computation-data structure decoupling allows us to quickly experiment with different data arrangements, and to develop high-performance data structures tailored for specific computational tasks. With 1 <u> 1 </u> 0 th as many lines of code, we achieve 4.55× higher performance on average, compared to hand-optimized reference implementations.
Yazarların özeti; kaynağından alınmıştır. ACM Transactions on Graphics, 2019 · DOI ↗
Ücretsiz hesapla devam et
Makaleye Sor ile bu makaleye günde 3 soru ücretsiz; makaleyi kaydet, kaynakçasını al, ilgi alanına göre her gün yeni özetler. Çıkarımlar Premium.
Web'de ücretsiz devam etGoogle ya da Apple hesabınla giriş; kart istemez. Bu makaleye geri dönersin.
Telefonda:
Alan: Bilgisayar Grafikleri ve Bilgisayar Destekli Tasarım
Computer Graphics and Computer-Aided DesignComputer Science