GPU acceleration; ray tracing; Monte Carlo simulation; feature-scale process simulation; semiconductor fabrication; plasma etching; deposition modeling; level-set methods; surface evolution; high-performance computing; ViennaPS
en
Abstract:
The ray tracing component of ViennaPS, which previously included a CPU implementation supporting disk-based surface meshes in 2D and 3D, and a GPU implementation supporting 3D triangle-based meshes, was extended by three additional GPU-accelerated ray tracing engines. The new engines add support for disk meshes in both 2D and 3D, matching the capabilities of the CPU version, 2D line meshes as counterparts to the 3D only triangle primitives and the use of 2D and 3D level-set voxel meshes. The goal is to create and benchmark ray tracing engines that significantly speed up particle simulations compared to the CPU, while exploring the effects and trade-offs of different surface representations.The GPU implementations were developed using the NVIDIA® OptiXTM framework, which leverages hardware acceleration through specialized RT cores built for optimized BVH traversal and ray-triangle intersection tests on modern NVIDIA GPUs.The ray tracing engines were used to accelerate flux calculations during the simulation of several semiconductor fabrication processes. Specifically, benchmarked processes include chemical deposition, plasma etching, and the Bosch process. The methods were compared in terms of total runtime and accuracy against the existing CPU disk implementation, while both qualitative analysis of final surfaces through visual comparison and quantitative metrics like surface area and Chamfer distance were used to discuss accuracy.\\The GPU disk engine achieved speedups of 9x-34x, depending on the example, compared to the CPU version while producing practically identical results. The 2D line engine reached similar performance, while the triangle engine was able to trace around 1.5x more rays per second since the RT cores are specifically designed for ray-triangle intersection.Since triangle meshes typically require around twice as many surface elements as disk meshes to represent the same geometry and because the number of rays in this implementation scales with the number of elements, the overall runtimes were comparable. There was also an attempt to avoid explicit meshing and directly use the level-set representation of the surface provided by ViennaLS. However, the accuracy was not satisfactory compared to the mesh based approaches. A likely cause for this is the simple and error-prone implementation for surface element area calculation, for which possibly better approaches are mentioned. The performance of the level-set engine was also not competitive with the other engines, as no effort was made to optimize the erroneous implementation. In theory, the level-set method should be able to achieve similar performance while avoiding the intermediate meshing step; however, further work is required to reach this goal.The GPU engines were all profiled using NVIDIA® Nsight ComputeTM to identify bottlenecks and areas for future optimization, where potential improvements in memory access patterns as well as memory and warp coherence were discussed. Finally, the power consumption of the CPU and GPU during a simulation was measured to evaluate energy efficiency of the different implementations, showing that the GPU engines are significantly more energy efficient despite their higher power draw due to their much shorter runtimes.
en
Die Ray-Tracing-Komponente von ViennaPS, die zuvor eine CPU-Implementierung mit Unterstüzung für scheibenbasierte Oberflächen in 2D und 3D, sowie eine GPU-Implementierung die 3D-dreiecksbasierte Oberflächen unterstützte, wurde um drei zusätzliche GPU-beschleunigte Raytracing-Engines erweitert. Die neuen Engines unterstützen Scheiben in 2D und 3D, ähnlich der CPU-Version, 2D-Linien als Gegenstück zu den 3D-Dreiecks-Elementen sowie implizite Flächen in 2D und 3D, definiert durch ein Level-Set. Das Ziel ist es, Raytracing-Engines zu entwickeln und zu benchmarken, die Partikelsimulationen im Vergleich zur CPU erheblich beschleunigen, während Unterschiede und Kompromisse verschiedener Oberflächendarstellungen untersucht werden. Die GPU-Implementierungen wurden unter Verwendung des NVIDIA® OptiXTM Frameworks entwickelt, das Hardware-Beschleunigung über spezialisierte RT-Kerne moderner GPUs unterstützt. Diese RT-Kerne sind für das durchlaufen der BVH Struktur und Ray-Dreieck-Treffertests optimiert. Die Raytracing-Engines wurden verwendet, um Flussberechnungen während der Simulation mehrerer Halbleiter-Fertigungsprozesse zu beschleunigen. Speziell getestete Prozesse umfassen chemische Beschichtung, Plasmaätzen und den Bosch-Prozess. Die Methoden wurden hinsichtlich Gesamtlaufzeit und Genauigkeit mit der bestehenden CPU-Scheiben-Implementierung verglichen, wobei sowohl qualitative Analysen der finalen Oberflächen durch visuelle Vergleiche als auch quantitative Metriken wie Flächeninhalt und Chamfer-Distanz zur Diskussion der Genauigkeit herangezogen wurden. Die GPU-Scheiben-Engine erreichte 9- bis 34-fache Beschleunigungen, abhängig vom Beispiel, im Vergleich zur CPU-Version, während praktisch identische Ergebnisse produziert wurden. Die 2D-Linien-Engine erreichte ähnliche Leistungen, während die Dreiecks-Engine etwa 1,5-mal mehr Rays pro Sekunde verfolgen konnte, da die RT-Kerne speziell für Ray-Dreieck-Treffer ausgelegt sind.Da Dreiecksnetze in der Regel etwa doppelt so viele Oberflächenelemente wie ein Scheibennetz benötigen, um dieselbe Geometrie darzustellen, und die Anzahl der Rays in dieser Implementierung mit der Anzahl an Elementen skaliert, waren die Gesamtlaufzeiten vergleichbar. Es wurde auch versucht, eine explizite Oberflächendarstellung zu vermeiden und stattdessen direkt die Level-Set Repräsentation der Oberfläche zu verwenden, die von ViennaLS bereitgestellt wird. Die Genauigkeit war jedoch im Vergleich zu den netzbasierten Ansätzen nicht zufriedenstellend. Wahrscheinliche Ursache hierfür ist die einfache und fehleranfällige Implementierung zur Berechnung der Oberfläche der einzelnen Elemente, für die möglicherweise bessere Ansätze vorgeschalgen werden. Die Leistung der Level-Set-Engine war ebenfalls nicht auf dem Niveau der anderen Engines, da kein Aufwand unternommen wurde, die fehlerhafte Implementierung zu optimieren. Theoretisch sollte die Level-Set-Methode in der Lage sein, ähnliche Leistungen zu erzielen und dabei den Zwischenschritt der Netzgenerierung zu vermeiden, jedoch ist weitere Arbeit erforderlich, um dieses Ziel zu erreichen.Die GPU-Engines wurden alle mit NVIDIA® Nsight ComputeTM analysiert, um Bereiche für zukünftige Optimierungen zu identifizieren, wobei potenzielle Verbesserungen in Speicherzugriffsmustern sowie Speicher- und Warp-Kohärenz diskutiert wurden. Schließlich wurde der Energieverbrauch von CPU und GPU während einer Simulation gemessen, um die Energieeffizienz der verschiedenen Implementierungen zu bewerten. Dabei zeigte sich, dass die GPU-Engines trotz erhöhter Gesamtleistung aufgrund der deutlich kürzeren Laufzeiten erheblich energieeffizienter sind.