Avatar billede pede1987 Nybegynder
29. februar 2012 - 19:02 Der er 2 kommentarer og
1 løsning

Performance med mange funktionskald i C og CUDA

Hej,

Jeg ønsker at hører om der er nogle der ved om der er nogen performance forskel på at have nogle linjer kode i en for-løkke eller at ligge linjerne ind i en funktion som så kørers inde i for-løkken?

Kode skal senere implementeres på GPU (massiv parallel), og her er jeg også lidt i tvivl hvordan CUDA reagere ved så mange funktions kald.

Det nævnes, at funktionen skal have mange parameter ind (~10) og at for-løkken (funktions kald) ligger imellem 2-4 milioner, og dette gøres måske ~200 gange.


Håber der er nogen som kan hjælpe

Mvh
./tym
Avatar billede arne_v Ekspert
29. februar 2012 - 19:32 #1
Jeg har smidt nogle generelle betragtninger omkring inlining i dit foregaaende spoergsmaal.
Avatar billede segmose Nybegynder
01. marts 2012 - 13:42 #2
Normalt for et funktions kald uden inline og uden en god optimering er det en tabt sag i forhold til at skive det i løkken. Men overskuelighed er også en gang imellem en dyd.

Men hvis du kan lave løkken som parallel-for eller lignende så kan det måske betale sig, men der er mange måder at lave parallelle kørsler og jeg kender ikke CUDA's styrker og svagheder.

Generelt er der dog et stort overhead ved funktions kald.
Avatar billede pede1987 Nybegynder
15. marts 2012 - 18:32 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester