Oregelbundna algoritmer som Stochastic Gradient Descent (SGD) kan dra nytta av den massiva parallellism som finns på GPU:er. Till skillnad från dataparallellalgoritmer är dock synkroniseringsmönster i SGD ganska komplexa. Dessutom är schemaläggning för skalfria grafer en utmaning. Detta arbete undersöker flera synkroniseringsstrategier för SGD, allt från enkel låsning till konfliktfri schemaläggning. Vi observerar att statiska scheman inte ger bättre prestanda trots att behovet av att utföra konfliktdetektering och konfliktlösning på runtime elimineras. Vi identifierar källan till prestandanedbrytningen som strukturen för vissa delar av grafen (dense vs sparse). Denna klassificering kan användas för att utforma hybrida schemaläggningsstrategier som utnyttjar olika scheman för olika regioner i diagrammet för att uppnå bättre prestanda. Vi fann att det bästa schemat för vissa problem kan vara upp till två storleksordningar snabbare än det värsta. För att utvärdera resultatet av vårt GPU-implementering, jämför vi också mot en CPU-implementation av SGD. Dynamiska scheman presterar jämförbart med en 14-tråds CPU genomförande, medan en statisk schema utför jämförbart med en 6-tråds CPU genomförande.
Kaleem m.fl. visa att den parallella SGD kan köras effektivt på GPU, och deras genomförande på GPU är jämförbar med en 14-trådad CPU genomförande REF.
Stochastic gradient descent on GPUs
{'venue': 'GPGPU@PPoPP', 'journal': None, 'mag_field_of_study': ['Computer Science']}