AI-koodausavustimet, keskustelua AI-avustetusta koodaamisesta/skriptaamisesta/dokumentoinnista/...

Tuo on oikeasti hyvä tilanne. Voipi tehdä vaikka kaikenlaista mahdollisesti hyödyttävää työtä siivoamisesta tulevaisuusjuttuihin. Yksi mikä vois olla kiinnostava niin kokeilla tehdä Mojo:lla kiihdytykset cudan sijaan. Aika mielenkiintoinen häkkyrä ja pääsee nvidian ikeestä pois. Toki toimii hyvin nvidiallakin. Mulla ollut mielenpäällä että vois mojolla olla kiva kokeilla jotain demoefektityylisiä kerneleitä jotka kiihdyttyis ... valtavasti ...

Mojon taustalla chris lattner joka ei liene tarvi esittelyjä(llvm, clang, swift,...) :) Mojossa ideana tehdä pythonin näköisellä erittäin hyvin rinnakkaistuvaa koodia mitä voi ajella cpu(simd,avx,...)/gpu/... kiihdyttimillä

No siis mulla on ihan sama tarkoitus, mutta Mojon sijasta käytössä on ILGPU. Eli C#:llä kirjoitetaan kernelit ja ILGPU sitten kääntää ne ajon aikana natiiviksi koodiksi. Ihan vain siksi että olisi helpompi ylläpitää ja optimoida eikä tarvitsisi liimailla C++:lla kirjoitettuja C-kirjastoja C#-ohjelmaan.

Tosin voisi se nyt olla Mojokin kun ollaan AI-aikakaudella. Ne syyt miksi halusin pois natiivista CUDA- ja C-koodista eivät enää päde :D
 
Koodaus alkaa olla ratkaistu ongelma. Tämänhetkiset tulokset ennen kuin laitan yöksi jauhamaan:

ScenarioPortable encode-onlynvJPEG encode-onlyDifference
Mono rst16 parallel0.566 ms0.335 ms 1.69x slower
4:4:4 rst16 parallel1.250 ms0.441 ms2.83x slower
4:2:0 rst16 parallel0.777 ms0.462 ms1.68x slower
Planar 4:2:0 rst16 parallel0.757 ms0.462 ms1.64x slower
 
Olen nyt koodannut samaan aikaan omaa peliprojektia.
Jokin aika sitten kaivoin vanhan peliprojektini esiin, olin viikkoja optimoinut sitä ja FPS oli ~300, pari promptia ja oltiin tuhannessa hienompien efektien kera. Tuli jotenkin masentunut fiilis siitä, osaanko enää mitää paremmin kuin nämä mallit? Voisikin nyt laittaa 5.5 jauhamaan sitä, kun tässä ei muutakaan käyttöä keksi.
 
Viimeöinen JPEG-optimointi oli sitten kosahtanut blue screeniin. Grayscale menee jo 1,1x vauhtia, värikuvat vielä 1,5x nopeudessa.
CUDA:han kääntyy ptx-assembleriin. Osa taloistahan optimoi nvidialle suoraan assylla kun sen kautta voi tehdä kikkoja mitä varsinainen cuda kääntäjä korkeamman tason kielestä ei tee. AI vois kokeilla analysoida assyt(jos et tee jo näin) ja antaa AI:n kirjoittaa parempaa koodia hot looppeihin. Voi olla hauska harjoitus jos on tokeneita mitä poltella pois.
 
CUDA:han kääntyy ptx-assembleriin. Osa taloistahan optimoi nvidialle suoraan assylla kun sen kautta voi tehdä kikkoja mitä varsinainen cuda kääntäjä korkeamman tason kielestä ei tee. AI vois kokeilla analysoida assyt(jos et tee jo näin) ja antaa AI:n kirjoittaa parempaa koodia hot looppeihin. Voi olla hauska harjoitus jos on tokeneita mitä poltella pois.
Hyvä idea tämäkin. ILGPU kääntää koodin, ja annoin AI:lle tehtäväksi auditoida sen lähdekoodit ja sitä kautta etsiä voisiko koodi olla tehokkaampaa tai voisiko tuottaa tehokkaampaa koodia. Mitään kriittistä ei löytynyt, mutta ILGPU:n auditoinut AI antoi vinkkejä JPEG-koodin optimointiin ja sitä kautta löytyi tuloksia. Nyt joissain tapauksissa ollaan nopeampi kuin NVidian kirjasto.

Koodi:
Yes, faster cases from this run:

1920x240 mono:

nvJPEG: 0.183 ms
portable mono-rst16-current: 0.107 ms
ratio 0.58x, so portable is about 1.7x faster.


1920x240 planar 4:4:4:

nvJPEG: 0.281 ms
portable best/current rows around 0.225-0.239 ms
ratio around 0.80x-0.85x, so portable is faster.


1280x720 mono:

nvJPEG: 0.207 ms
portable best current row: 0.169 ms
ratio 0.82x, so portable is faster.


Where nvJPEG still wins:

1920x1080 mono:

nvJPEG: 0.278 ms
portable rst16-current: 0.316 ms
ratio 1.14x, close but still slower.


1920x1080 planar 4:4:4:

nvJPEG: 0.445 ms
portable current best around 0.703 ms
ratio 1.58x, still meaningfully slower.
 
Hyvä idea tämäkin. ILGPU kääntää koodin, ja annoin AI:lle tehtäväksi auditoida sen lähdekoodit ja sitä kautta etsiä voisiko koodi olla tehokkaampaa tai voisiko tuottaa tehokkaampaa koodia.
Ehkä agentin vois saada mcp-serverin avulla suht järkevällä vaivalla profiloimaan koodia ja sitäkautta lisää paikkoja mitä voisi optimoida. Yksi vaihtoehto:
MCP server for GPU profiling with NVIDIA Nsight Systems (nsys). Requires NVIDIA Nsight Systems installed and available in PATH. Python 3.10+ is also required.

Amigakoodeissa oli tosi hyödyllistä teettää assemblerilla microbenchmarkkeja. AI paljon ennemmin uskoi/oppi miten optimoida benchmarkkien kuin esim. käskykannan manuskan+kellojaksojen pohjalta.
 

Statistiikka

Viestiketjuista
306 481
Viestejä
5 187 137
Jäsenet
82 904
Uusin jäsen
Jomppa26

Hinta.fi

Back
Ylös Bottom