850-kertainen laskentanopeus Atostekin avulla
Tilanne
Asiakkaallamme on sovellus, jossa käyttäjä ohjaa laitetta mittaustuloksesta algoritmilla lasketun analyysin avulla. Sovelluksen nopeudessa oli kuitenkin ongelma – käyttäjän saama tieto oli useita sekunteja vanhaa, mikä ei riittänyt laitteen tarkkaan ohjaamiseen.
Nopeus oli sovelluksen toiminnan kannalta kriittinen tekijä. Viive täytyi kuroa millisekunteihin, että sovellus olisi käyttökelpoinen.
Ratkaisumme
Atostek otti lähtökohdaksi Matlab-koodin, jonka suoritus kesti noin minuutin. Ensimmäisenä työkaluna käytimme Intelin optimoivaa C-kääntäjää, jonka avulla säikeistetty koodi saatiin nopeutumaan kolmeen sekuntiin.
Seuraavaksi optimoimme koodin CUDA-ohjelmointirajapinnan avulla GTX460- ja GTX580-näytönohjaimille, ja madalsimme laskentatarkkuutta tarpeettoman suuresta 64 bitistä 32:een.
Tuloksena oli yli kahdeksansataa kertaa nopeampi laskenta, 70 millisekuntia, mikä mahdollisti sovelluksen tarkan ohjaamisen!