Log in

View Full Version : Razvoj efekata na GPU-u


peraZdera
08-05-2006, 05:17 PM
Da li je neko zainteresovan da zajedno sa mnom počne sa razvojem audio efekata na GPU-u?

lesha
08-05-2006, 05:52 PM
ja bih kad bih umeo :)

boggy
08-05-2006, 05:54 PM
Izvinjavam se sto pitam, moze li mi neko reci sta je "GPU"?

pozdrav

bogi

lesha
08-05-2006, 05:59 PM
graphics processing unit

btw. ima li to kakve veze sa bionicfx ?

boggy
08-05-2006, 06:04 PM
graphics processing unit


To mi je prvo palo na pamet, ali ne znam sta tu moze da se programira...
Koji GPU je u pitanju? nvidia?
Na koji nacin i kojim alatima se radi?
Postoje li javne/besplatne biblioteke (libraries) za njega?
Zasto bi se to inace radilo?
Izvin'te na kolicini pitanja, ali sam izgleda slabo obavesten...


btw. ima li to kakve veze sa bionicfx ?

To tek ne znam sta je... :banghead:
ali to mogu i na google... GPU je vec teze...

pozdrav

bogi

idekius
08-05-2006, 06:08 PM
To za alate mi i nije bas jasno...
Valjda je sasvim izvodljivo to raditi u C++, samo.... treba DEBELO znanje... moje znanje C++ je vise nego skromno, maximum koji sam napravio su neke konzolarne aplikacije, tako da... PRUZAM PODRSKU, ali ni na koji nacin ne mogu pomoci...

Ako ikome zatreba da mu napravim euro-dinar kalkulator koji se otvara iz ms-dos prompta, nije nikakav problem, tu sam pravi maher :-)

boggy
08-05-2006, 06:15 PM
"Alati":

- MS Visual C++
- Borland Builder
- GNU tool chain...

To sam mislio kada sam rekao alati...
U alate takodje spadaju i biblioteke za odredjenu aplikaciju/procesor bio on GPU ili Intel x86... ako to sve ima da se nabavi for free bez licencnih obaveza...

@Idekius..
Ako si uspeo da napravis konzolnu aplikaciju ili vise njih, za DSP efekte ti i ne treba fundamentalno vece znanje programiranja... GUI je posebna prica... konkretno nebitna u ovom slucaju... dugmici mogu da se setuju iz komandne linije ili sa tastature...

Ahm... zanimljiva prica poce... :)

pozdrav

bogi

kejkz
08-05-2006, 06:32 PM
Na koji način se GPU može programirati da radi kao DSP? Pošto o tome ne znam baš ništa...

boggy
08-05-2006, 06:33 PM
Na koji način se GPU mo?e programirati da radi kao DSP?

Da, ovo je pravo pitanje... za nvidia sam nacuo nesto, ali je bolje da cujemo obavestenije...

pozdrav

bogi

lesha
08-05-2006, 06:50 PM
vec je pominjano, ali evo linka ponovo www.bionicfx.com/info.html

kejkz
08-05-2006, 07:09 PM
vec je pominjano, ali evo linka ponovo www.bionicfx.com/info.html

Ali na toj stranici sve što piše je suviše uopšteno, nema nikakvih detalja.Mene zanima kako se programira čip, koji je zamišljen kao procesor za grafiku, za jednu ipak nepredviđenu namenu. Siguran sam da je to moguće, ali kako? Da li će biti potrebna još jedna grafička karta ili se koristi samo jedna? Koliko je realno kašnjenje ovakvog sistema i efekata?

boggy
08-05-2006, 07:17 PM
Takodje je vazno da li se za tool-ove (prevodim "alatima", ali me ne razumeju), ista placa, da li je licenca za koriscenje royalty free... itd.
Takodje mogu traziti NDA (Non Disclosure Agreement) a to moze da komplikuje primenu.

Na kraju, sta sve treba da bi se to moglo raditi?

Inace dokumentaciju za nvidia GPU ne mozete dobiti bez NDA i kupovine njihovog referentnog dizajna... ili tako nesto... mislim da je prica o tome krenula pre par godina, i secam se da je tada bilo zanimljivo...

Mene je licno tada zanimao upravo njihov GPU cip za audio aplikacije... te sam tada malo bazao po njihovom sajtu, ali davno nisam.

pozdrav

bogi

ProkDu
08-05-2006, 07:35 PM
Pero, a koja znanja ti posedujes sa kojima bi konkretno usao u celu tu pricu?
Ne provociram vec me iskreno interesuje.
Inace ideja je zanimljiva. ;)

idekius
08-05-2006, 09:01 PM
@Idekius..
Ako si uspeo da napravis konzolnu aplikaciju ili vise njih, za DSP efekte ti i ne treba fundamentalno vece znanje programiranja... GUI je posebna prica... konkretno nebitna u ovom slucaju... dugmici mogu da se setuju iz komandne linije ili sa tastature...

bogi
Zezao sam se ja malo sa C++, posle sam digao ruke, shvativsi da je to ogromna oblast i da se ne moze sve u zivotu.
Moja tvrdnja da su DSP efekti "bolji" je upravo zasnovana na delimicnom poznavanju C++. Naime, poznat mi je veliki problem sa kojim danasnji programeri vode bitku, a to je optimizacija software-a. Kod PC-a je hardware toliko sharen, da progaramerski timovi imaju ozbiljan problem da predvide sve moguce kombinacije. Programer za DSP aplikacije nema taj problem, unapred zna sta ce da pogoni njegov program.
Iz C++ cak imam i neku dipolmu sa radnickog univerziteta u Nisu:), ali... moje znanje je minorno..., a radio sam u MS Visual Studio, mislim da je tada bila aktuelna verzija 5... proslo je dosta vremena...
A prva konzolarna aplikacija koju sam napravio je kompajlirana upravo borland kompajlerom koji si pomenuo :)

Od cele price sam odustao jer sam shvatio da je to zaista ogromno polje koje zahteva puuunoooo rada, a kda nesto radim, ili radim do maximuma, ili ne radim uopste... Tako da je zbog svoje zahtevnosti C++ otpao, a ja nastavio da se usavrsavam po pitanju muzike...

Inace, onima koje C++ zanima, a malo znaju o njemu, savetujem knjigu "C++ za 21 dan" (http://www.kombib.co.yu/knjiga.php?kid=224&o=15), izdanje kombib-a iz Chacka(komjuter biblioteka). Jeste da je naslov knjige prilicno kretenski, ali je knjiga odlicna...

boggy
08-05-2006, 09:52 PM
Zezao sam se ja malo sa C++, posle sam digao ruke, shvativsi da je to ogromna oblast i da se ne moze sve u zivotu.
Moja tvrdnja da su DSP efekti "bolji" je upravo zasnovana na delimicnom poznavanju C++. Naime, poznat mi je veliki problem sa kojim danasnji programeri vode bitku, a to je optimizacija software-a. Kod PC-a je hardware toliko sharen, da progaramerski timovi imaju ozbiljan problem da predvide sve moguce kombinacije. Programer za DSP aplikacije nema taj problem, unapred zna sta ce da pogoni njegov program.
Iz C++ cak imam i neku dipolmu sa radnickog univerziteta u Nisu:), ali... moje znanje je minorno..., a radio sam u MS Visual Studio, mislim da je tada bila aktuelna verzija 5... proslo je dosta vremena...
A prva konzolarna aplikacija koju sam napravio je kompajlirana upravo borland kompajlerom koji si pomenuo :)
....

Daleko od toga da sam hteo da ti kazem da je to lako, ali ti si spomenuo kodovanje (C/C++) samo, manji deo, a u pitanju je sve ostalo sto TEK treba da se uci... tako da je to prica... Digitalna Obrada Signala je predmet koji se uci na ETF, i knjige su podebele, zahtevaju predznanje... Procesori sami po sebi su prica za sebe, poznavanje njih i njihove arhitekture/periferala je takodje neophodno... itd..

Inace, da se sad ja pohvalim, nas najozbilniji domet (BoZo) u klasi NE-DSP procesora, znaci klasican Intel PC na 1.2GHz, je aplikacija za digitalnu skretnicu za razvoj aktivnih prototipova skretnica za zvucnike, pod Linuxom...
Softver je radjen da proradi sto pre, nista nismo optimizovali, ni na sta ne lici, ima "beskonacnu" latenciju (15-20ms u najboljem slucaju)... ali je tacan, moze se sa njime meriti, koristi 64bit floating point, a kartica nam je bila osmokanalna consumer class M-Audio Revolution (za surround, mada su konvertori nezavisni, 24bitni)
Maksimalno sto smo uradili je trosistemska stereo skretnica (6 kanala smo utrosili sa Revolutiona) sa ukupno 64 biquad filtra (u zavisnosti od koeficijenata, moze biti high pass, low pass, notch, peaking, itd)... latencija je bila :banghead:..., ali je skretnica radila satima izmedju povremenih padova...

Odlicna nam je bila za merenja, jer u roku od pet sekundi mozemo korigovati detalje... po sistemu, jel bolje ovako ili onako... itd... mnogo dobra stvar...
ruzno, nikakvo, ali radi ono za sta je namenjeno

pozdrav

bogi

idekius
08-05-2006, 11:29 PM
He, he! Bravo Boggy!
To je ipak kud i kamo veci domet nego moj euro calculator:rolleyes:

Rekoh ja... ako treba da se radi neka fizikalija, tu sam...
Sad, neznam koliko je realna ideja da se uradi DSP plug za GPU...
Momci, ja bih vam bio zahvalan do neba kad bi ste uradili samo nesto nalik SIR-u, ali da ga pogoni DSP... i jos ako bi GPU mogao da gura 3, or 4 impulsa, ufff... vise nego dovoljno!

boggy
08-05-2006, 11:42 PM
He, he! Bravo Boggy!
To je ipak kud i kamo veci domet nego moj euro calculator:rolleyes:

....

Pa i nije, gledano relativno :) nikada DSP nismo radili na obicnom Intel procesoru :)... to sam samo ja budala mogao da predpostavim da ce to raditi... ali nam je trebalo nesto brzo i "lako".
Tu sam tek veoma bolno dokazao strahovanje koliko su obicni operativni sistemi spori i neoptimalni, koliko zahtevaju ceprkanja po svemu ostalom (sto nemas pojma sta je i tek trebas da razjasnis) osim po onome sto ti je target... KAPU SKIDAM proizvodjacima softvera za muzicku produkciju i audio editing na standardnim operativnim sistemima... to je skoro nemoguc posao, ali je traznja velika, i to ide dalje.


Drugim recima mi smo se inace bavili poslovima o kojima se manje-vise prica u ovom threadu, a ti nisi... tako da su dometi relativni... i tvoj kalkulator je izuzetno znacajna cinjenica kada nesto pocinjes da radis... da ti nije nikada proradio... sta bi bilo onda?
Sve sto ti proradi, rado ga se secas, ali ti nije neki domet, trazis druge izazove itd... opet ce me optuziti da relativizujem stvari, ali tako je... sta ja tu mogu...

pozdrav

bogi

idekius
08-05-2006, 11:48 PM
KAPU SKIDAM proizvodjacima softvera za muzicku produkciju i audio editing na standardnim operativnim sistemima... to je skoro nemoguc posao, ali je traznja velika, i to ide dalje.


Boggy, kada bi neko danas pogubio sve kodove za cubase, kada bi nestao ceo projekt... mislim da bi im trebalo barem pet godina da ga napisu od nule...

boggy
08-05-2006, 11:51 PM
Boggy, kada bi neko danas pogubio sve kodove za cubase, kada bi nestao ceo projekt... mislim da bi im trebalo barem pet godina da ga napisu od nule...

Ne bi, bio bi "kljuc u bravu"... :banghead:

Znam kako izgleda arhiva i versioning system velicine 200GB i sta znaci samo kada se korumpira i propadne zadnjih mesec dana, ili se obrise arhiva sa tejpa... doduse to sto smo radili (nekad) nije bila industrija zabave, tako da je sve moguce.

pozdrav

bogi

boggy
09-05-2006, 12:06 AM
He, he! Bravo Boggy!...

:) postoji i Zo u BoZo... ako vec saljes pohvale za programiranje :)...


pozdrav

bogi

idekius
09-05-2006, 12:32 AM
:) postoji i Zo u BoZo... ako vec saljes pohvale za programiranje :)...


pozdrav

bogi

Who is Zo?

peraZdera
09-05-2006, 08:50 AM
c++, OpenGl, Cg

Koristio bi GF6200 ili ako budem malo dodao para za 6600GT. GPU bi koristio ne zato sto moze da racuna nesto preciznije od CPU-a, vec zato sto je optimizovan za neka racunanja koja izvodi mnooooooogoooo brze od bilo kog CPU-a...:ninja: (npr. matrice). Naravno, za pocetak bi uzeo neki OpenSource algoritam, recimo za kompresor koga bi optimizovao da radi na GPU-u...

lesha
09-05-2006, 09:08 AM
hm, bila bi fora kad bi to mogao da uradis pre ovog lika koga cekamo vec par godina :)

idekius
09-05-2006, 11:28 AM
c++, OpenGl, Cg

Koristio bi GF6200 ili ako budem malo dodao para za 6600GT. GPU bi koristio ne zato sto moze da racuna nesto preciznije od CPU-a, vec zato sto je optimizovan za neka racunanja koja izvodi mnooooooogoooo brze od bilo kog CPU-a...:ninja: (npr. matrice). Naravno, za pocetak bi uzeo neki OpenSource algoritam, recimo za kompresor koga bi optimizovao da radi na GPU-u...

Pokusaj ti to da uradis sa sir-om i bice neke koristi otd toga, a od adaptacije kompresora nemas nista. Ni jedan dobar kompresor nije open source...

boggy
09-05-2006, 11:41 AM
Moze li neko od vas da mi objasni sta vam znaci "impuls" u zargonu...
i kako se koristi

pozdrav

bogi

idekius
09-05-2006, 12:04 PM
Moze li neko od vas da mi objasni sta vam znaci "impuls" u zargonu...
i kako se koristi

pozdrav

bogi

Najvise se koristi za reverbe, ma da ja volim da petljam i sa impulsima raznih preampa, mikrofona... itd...

U pitanju su takozvani convolution reverbi. Mislim da je ta tehnika najpre bila koriscena u filmu, pa potom i u muzici.

Prosto: -Imas recimo snimak jeke npr "Sidney Opera House" iz treceg reda, recimo sediste 27... Kada sa zvukom te prostorije konvoluiras vocal, dobijes nesto kao vocal u tom prostoru...
Plugovi koji lepo citaju impulse su Voxengo Pristine Space i SIR (mali, besplatni, ubitacni plug-inchic). Waves ima svoj convolution reverb koji nije bas badava (oko 1000$) i radi jako lepo. U pitanju je Waves IR-1


Suvise sturo sam ti objasnio... zato pogledaj:
- http://www.noisevault.com/index.php i http://www.waves.com/content.asp?id=1564

davidov
09-05-2006, 12:14 PM
Who is Zo? Ja :da:.
Pozdrav,
Zorica

boggy
09-05-2006, 12:14 PM
Najvise se koristi za reverbe, ma da ja volim da petljam i sa impulsima raznih preampa, mikrofona... itd...

U pitanju su takozvani convolution reverbi. Mislim da je ta tehnika najpre bila koriscena u filmu, pa potom i u muzici.

Prosto: -Imas recimo snimak jeke npr "Sidney Opera House" iz treceg reda, recimo sediste 27... Kada sa zvukom te prostorije konvoluiras vocal, dobijes nesto kao vocal u tom prostoru...
Plugovi koji lepo citaju impulse su Voxengo Pristine Space i SIR (mali, besplatni, ubitacni plug-inchic). Waves ima svoj convolution reverb koji nije bas badava (oko 1000$) i radi jako lepo. U pitanju je Waves IR-1


Suvise sturo sam ti objasnio... zato pogledaj:
- http://www.noisevault.com/index.php i http://www.waves.com/content.asp?id=1564

Ok, hvala, dobra ideja, samo se brinem sto konvolucija vazi za linearne sisteme (ugrubo, sistemi bez distorzije)... no verovatno su majstori to sredili nekim trikovima...

pozdrav

bogi

idekius
09-05-2006, 12:39 PM
Ok, hvala, dobra ideja, samo se brinem sto konvolucija vazi za linearne sisteme (ugrubo, sistemi bez distorzije)... no verovatno su majstori to sredili nekim trikovima...

E... ima tu jedan zvrk koji meni nije pao na pamet, a tako je logican...
Max se dosetio jednog problemcica pri upotrebi convolution reverba. To je da su impulsi snimljeni u wav fajlu, sto znaci da modulacijski efekt ne moze biti snimljen. Dakle, kad on snimi impuls nekog npr. Lexicona, on ti da reverb (koji jeste zaista dobar i veran), ali samo reverb, dakle iz onog preseta na njemu sve one modulacijske zezalice mora da iskljuci, npr. mali delaychic i sl.
Kada se radi prostor za glas, dobro je pored impulsa staviti i mali delay, chorus... i rezultat je zaista dobar. Sad, ako radis neku orkestraciju, koristis npr. Vienna Sample Libray, ili tako nesto, tu je sasvim o.k. staviti impuls nekog akusticnog prostora i ne dodavati nikakve modulacijske efekte...

Inace, ukoliko bi nekome uspelo da napise software koji bi koristio GPU umesto CPU, lepo bi bilo da to bude plug koji cita impulse zbog toga sto su impulsi zahtevni za CPU... A dobri su... itekako...

P.S. Pozdrav i za Zo ;)

boggy
09-05-2006, 12:49 PM
E... ima tu jedan zvrk koji meni nije pao na pamet, a tako je logican...
....

Generalno, samo se secam konvolucije... i ono sto je cinjenica, da to moze odlicno raditi za equalizaciju... odnosno filtriranje... delay, reverb, itd, mi izgledaju sumnjivo da se mogu konvolucijom simulirati precizno, posto su to vremenski varijantni sistemi sa memorijom, i svaka grana ima svoj EQ, a takodje distorzija je tesko ostvarljiva konvolucijom... jer se simulira nelinearnim funkcijama koje ne mogu uvek proci kroz konvoluciju ako se radi analiticki... doduse ako se sve to racuna priblizno, i ako se radi numericki... verovatno su, kao sto rekoh, smislili neke trikove i to sredili... nismo se time bavili...
A sto se tice zahtevnosti za procesiranje... e pa sad... konvolucija je veoma zaguljena cak i za brze DSP...

pozdrav

bogi

ProkDu
09-05-2006, 08:32 PM
c++, OpenGl, Cg

Koristio bi GF6200 ili ako budem malo dodao para za 6600GT. GPU bi koristio ne zato sto moze da racuna nesto preciznije od CPU-a, vec zato sto je optimizovan za neka racunanja koja izvodi mnooooooogoooo brze od bilo kog CPU-a...:ninja: (npr. matrice). Naravno, za pocetak bi uzeo neki OpenSource algoritam, recimo za kompresor koga bi optimizovao da radi na GPU-u...

Pazi, za pocetak zasto da ne, imas vec algoritam, prepises ga (logiku) ka GPU-u, i vidis rezultate vrlo brzo, a usput si i nesto naucio.
Trenutno intenzivno ucim C#, i kao sto znas to je managed jezik, tj. oslanja se na .NET framework, tako da tesko mogu pomoci sem oko nekog "okvira" iz koga bi taj algoritam radio. Evo upravo sam video sintaksu Cg-a (C for Graphics(nVidia-ina implementacija C-a)) i naravno da mogu da vidim sta je sta jer je C# "dete" -> C, C++ i Java-e. E, sad kao sto rece Boggy, to je samo jedan deo price, drugi deo je poznavanje arhitekture nVidia GPU-a, razvojnog okruzenja, poznavanje principa akustike, poznavanje ostalih faktora (x) ... itd. == new, new, new == learning, learning, learning.
Inace baci neke linkove za razvojno okruzenje odn. alate iz kojih bi to radio.
Da li vec postoji open source algoritam za kompresor?
Da li neko sem bionixfx-a radi na toj implementaciji?

peraZdera
10-05-2006, 10:31 AM
Originally Posted by idekius
Inace, ukoliko bi nekome uspelo da napise software koji bi koristio GPU umesto CPU, lepo bi bilo da to bude plug koji cita impulse zbog toga sto su impulsi zahtevni za CPU... A dobri su... itekako...
Pogledacu jos na netu oko tih impulsa... Cilj svega ovoga i jeste da se rastereti CPU...
E da, nije mi potrebno poznavanje arhitekture nVidia GPU-a zato sto imam vec Cg, OpenGl funkcije koje rade sa njim. Sto se tice poznavanja principa akustike ima dosta literature na netu...