Diese Arbeit präsentiert einen vollständig GPU-beschleunigten Algorithmus für den polygonalen Netzgenerator Polylla. Der Algorithmus beginnt mit einer Dreiecksvermaschung als Eingabe und konstruiert dann Terminal-Edge-Regionen, indem er Dreiecke verbindet, die eine gemeinsame Terminal-Kante teilen. Aus diesen Terminal-Edge-Regionen erstellt der Algorithmus ein oder mehrere konvexe oder nicht-konvexe Polygone, deren Grenzen durch Kanten definiert sind, die nicht die längste Kante eines Dreiecks und/oder Eingabegrenz-/Schnittstellenkanten sind.
Der Algorithmus verwendet eine neuartige Methode, um Dreiecksvermaschungen parallel auf der GPU zu modifizieren, ohne Speicher allozieren oder freigeben zu müssen. Stattdessen werden die Werte der Attribute next und prev jeder Halbkante geändert, um Kanten zu trennen, die nicht mehr Teil des neuen polygonalen Netzes sind.
Die experimentellen Ergebnisse zeigen eine Beschleunigung von bis zu 83,2x im Vergleich zur sequentiellen CPU-Implementierung. Wenn die Kosten für das Kopieren der Datenstruktur vom Host-Gerät und zurück nicht berücksichtigt werden, beträgt die Beschleunigung sogar 746,8x.
Til et andet sprog
fra kildeindhold
arxiv.org
Vigtigste indsigter udtrukket fra
by Serg... kl. arxiv.org 03-25-2024
https://arxiv.org/pdf/2403.14723.pdfDybere Forespørgsler