Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

SpikeFun - Artificial Nervous System Demo

[es] :: Veštačka inteligencija :: SpikeFun - Artificial Nervous System Demo
(TOP topic, by Gojko Vujovic)
Strane: << < .. 5 6 7 8 9 10 11 12 13 14 ... Dalje > >>

[ Pregleda: 132590 | Odgovora: 455 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cyBerManIA
I ovo T ono
Space

Član broj: 25195
Poruke: 698
*.ptt.rs.

Sajt: www.facebook.com/cyberman..


+263 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.12.2012. u 03:17 - pre 136 meseci
Ivane, koliko vidim PC ti je bas slab a i imas brate mili premalo RAMa. Zamisli kad jedna mala aplikacija ne moze da izvrti u realtimeu prostu animaciju, koliko li ce tek Winamp da secka

^ opasna sala, da ne pomisli neko stvarno




Mind blowing, nema sta. Steta sto ja i velika vecina forumasa (pretpostavljam) ne mozemo da ispratimo toliko pricu s' razumevanjem, ali se trudimo i usput divimo benchmarku
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.12.2012. u 11:26 - pre 136 meseci
Thx :-) Samo, bice potrebno malo vremena da simulacija iz videa trci u realnom vremenu.

Za pocetak, memorija koja moze da iscita i upise oko 20-tak TB/s :-)
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.12.2012. u 17:17 - pre 136 meseci
Inace, jedan od "todo" kandidata za neku od sledecih verzija SpikeFun-a je vrlo zanimljiv algoritam za kreiranje realisticnih morfologija neurona. Hermann Cuntz je autor doticnog algoritma koji je takodje prakticno dostupan u TREES Toolbox paketu, koji je javno dostupan i implementiran u MATLAB-u.

U pitanju je brilijantno jednostavan i podjednako mocan algoritam koji se zasniva na 2 principa (ciji je originalni autor Ramon Cajal):

#1 - Princip konzervacije citoplazme (optimizacija dostupnih resursa)
#2 - Princip konzervacije vremena provodljivosti (optimizacija prirodne funkcije)

Iterativni algoritam koji se trudi da odrzi ova 2 principa u prisustvu slucajno distribuiranih tacaka "nosaca" je u stanju da prilicno verno replicira morfologije neurona - od insekata pa sve do sisara. Dodavanje dodatnih uslova kao sto su granice prostiranja unutar ciljanog substrata je u stanju da proizvede spektakularno realne rezultate:

http://www.ploscompbiol.org/ar...10.1371%2Fjournal.pcbi.1000877

Recimo, sinteticki kreirani piramidalni neuroni:







Iterativnim "gajenjem" mnostva neurona koji se "takmice" za nove "nosioce" se mogu dobiti kola koja su identicna sa prirodnim:



Levo je sinteticki generisano kolo CA3 hipokampalnih neurona, desno je sinteticki generisano kolo bipolarnih celija i fotoreceptora u retini. Kao sto se vidi, rezultati su fantasticno realni - i pokazuju da priroda stvara rezultate pridrzavanjem jednostavnih principa. Jos bolje, fantasticna realnost se ne zaustavlja samo na izgledu neurona - sinteticki generisani neuroni imaju takodje elektricna svojstva koja su neprepoznatljiva ako se uporede sa "pravim" neuronima:



^ Slika gore tj. grafici pod "L" pokazuju tzv. elektrotonicke "potpise" nekoliko sinteticki generisanih neurona uz pomoc TREES toolbox-a (sa razlicitim faktorima balansiranja bf - faktor balansiranja je parametar koji se koristi prilikom odabira tacaka nosioca) i jednog "pravog" neurona (grafik desno) - kao sto se vidi, faktor balansiranja u okolini vrednosti bf=~0.7 generise sinteticke neurone koji su identicni realnim. Grafik M pokazuje odnos faktora balansiranja i prosecne duzine kompartmenta.

--

Takodje, nova saznanja koja su rezultat istrazivanja unutar Blue Brain Projekta* [1], pokazuju da funkcionalna povezanost izmedju neurona u najvecoj meri sledi iz njihovih individualnih morfologija - eksperiment pokazuje da jednostavno slucajno pozicioniranje neurona unutar kortikalne kolone vrlo dobro predvidja pozicije individualnih sinapsi (tj. da je morfologija najveci kontributor - a dodatni hemijski mehanizmi odbijanja i privlacenja predstavljaju samo mali kontributor konacnoj povezanosti). To znaci da priroda nema neki "magicni stapic" koji individualnom neuronu pokazuje sa kojim neuronima da se poveze, vec da je ta povezanost u najvecoj meri predeterminisana samim rastom tog neurona (a, kao sto se vidi iz rezultata TREES toolbox-a, sam rast je takodje baziran na prostim pravilima)

Ovo je jako bitan rezultat - koji u mnogome pojednostavljuje skup pravila koja uticu na konacan izgled samih neuronskih "kola" koja se sastoje iz mnostva neurona. Prakticno, to znaci da sinteticko "gajenje" neurona algoritmom poput algoritma implementiranog u TREES toolboxu i njihovo nasumicno pozicioniranje predstavljaju vrlo dobru bazu za konacno 'uvezivanje', tj. da nije potrebno simuliranje dodatnih nepoznatih mehanizama kako bi se dobilo funkcionalno (skoro) ekvivalentno kolo realnom!

Sta to znaci prakticno? To znaci da nece biti potreban reverzni inzenjering svake celije ponaosob kako bi se utvrdila povezanost. Odlicna vest za buduce simulatore bioloskih funkcija... losa vest za proizvodjace elektronskih mikroskopa mozda :-)

--

[1] S.L.Hill, Y.Wang, I.Riachi, F.Schürmann, H.Markram: Statistical connectivity provides a sufficient foundation for specific functional connectivity in neocortical neural microcircuits, PNAS, Published online before print September 18, 2012, doi: 10.1073/pnas.1202128109


[Ovu poruku je menjao Ivan Dimkovic dana 28.12.2012. u 23:16 GMT+1]
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Prikačeni fajlovi
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo06.01.2013. u 22:54 - pre 136 meseci
v0.91 is out:

Download: http://www.dimkovic.com/node/7

Citat:

------------------------------------------------------------------------
v0.91 - Released on January 6th 2013
------------------------------------------------------------------------

* STDP model changed to Voltage-based STDP model (Clopath et al.[1])
which is in agreement with the larger set of experimental data.

[1] "Connectivity reflects coding: a model of voltage-based STDP
with homeostasis"

Clopath C, Buesing L, Vasilaki E, Gerstner W.
Nat Neurosci. 2010 Mar;13(3):344-52

* Tract mapping speed optimizations

* Small bugfixes / cleanups


Novost je novi model plasticnosti koji se bazira na post-sinaptickoj voltazi. Nemam vremena sad da opisem o cemu se tacno radi, ali to cu uraditi kada se vratim sa CES-a.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo27.01.2013. u 13:40 - pre 135 meseci
v0.92 is out:

Download: http://www.dimkovic.com/node/7

Citat:

------------------------------------------------------------------------
v0.92 - Released on January 27th 2013
------------------------------------------------------------------------

* Synaptic receptor state processing has been switched from time-based
to event based (where 'event' is a presynaptic spike). As a result
significant memory I/O has been saved as the receptor state is
updated only per preynaptic spike and not for every simulation time
step. New AVX-optimized synaptic processing code is also better at
grouping data into chunks suitable for processing in AVX registers.
Next big improvements can be expected by Intel(R) Haswell(TM) AVX2
VGATHER instruction, which is going to be supported in the future
version of DigiCortex Engine.

Overall speed improvement is approx. 30% across all demo projects

* Optimized neuron clustering algorithm allowing for greatly improved
neuron locality in the memory. As a result, simulation build-up
time is significantly improved (20%+ on NUMA systems).

* Optimized worker thread scheduling by using NUMA-friendly spinlocks
(spinlock are still 'hybrid' in a sense that they will be used up to
the defined number of spins with exponential backoff, after which
scheduler will try switching to other threads and, finally, sleep
the thread if the work of other threads is not completed at that
point). In addition, false sharing of per-thread data has been
eliminated by padding remaining structures to the L1 cache line size

* Memory usage optimizations by removing certain unnedeed variables
from the Neuron structure

* Added option to inject brief pulse of hyperpolarizing current into
the selected neuron/compartment with the 'O' key



Verzija 0.92 je ~30% brza zahvaljujuci promeni nacina procesiranja stanja sinaptickih receptora. Naime, Markram-Tsodyks model sinaptickih receptora se sastoji od 2 diferencijalne jednacine koje modeliraju evoluciju 2 varijable u vremenu (R i w). Dosadasnje verzije SpikeFun-a su u svakom koraku racunale nove R i w vrednosti koriscenjem Euler-ovog metoda.

Medjutim, trenutne R i w vrednosti su potrebne samo ako je doslo do presinaptickog akcionog potencijala tj. kada je taj potencijal "stigao" do receptora. SpikeFun 0.92 sada racuna novu R i w vrednost u momentu stizanja AP-a uz pomoc male lookup tabele koja sadrzi preracunate e^x vrednosti za R i w varijable za odredjen broj vremenskih koraka. Prilikom stizanja AP-a se utvrdi kada je poslednji put doslo do AP-a i R i w vrednosti se "osveze" tako da su up-to-date.

Uz pomoc ove procedure se stedi na memorijskom I/O-u zato sto vise nije potrebno ucitati i upisati R i w vrednosti za svaku sinapsu (2 float read-a i write-a za svaku sinapsu u svakom koraku) u svakom koraku, vec samo u momentu kada je doslo do spajka (sto se za vecinu sinapsi desava samo nekoliko puta u sekundi).

Simulacija sada trci oko ~30% brze - i na mojoj masini konacno prelazi real-time za 32768 neurona i 1.8 miliona sinapsi. Nije lose ako se uzme u obzir da je nekadasnja 0.63 verzija na istoj masini trcala <0.3x real-time.

Takodje, nova verzija ima bolje klasterovanje neurona tako da je maksimizovan broj lokalnih konekcija u klasteru - ovim se smanjuje memorijski saobracaj van LLC-a (last-level-cache). Medjutim, mislim da je moguce jos znacajno unaprediti klasterovanje sto ce verovatno biti tema jedne od sledecih verzija.


DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo01.02.2013. u 21:58 - pre 135 meseci
Inace, primetih da novi Windows API (za Windows 8 i Server 2012) ima nekoliko novih i vrlo interesantnih sinhronizacionih primitiva:

- Thread Barijere (EnterSynchronizationBarrier)

- Cekanje na memorijsku adresu (WaitOnAddress)


Barijere:

Koliko vidim, novi barrier API koristi ntdll.dll metod RtlBarrier, koji je postojao jos od kernel verzije 6 (Vista), ali je tek sa 8-micom Microsoft odlucio da javno otvori ovaj poziv kroz standardni i javni Win32 API - verovatno su procenili da ce taj poziv da ostane.

Barijera daje mogucnosti kombinacije spinovanja i spavanja niti, bas kao i moj kod - tako da nema nekih prednosti osim eventualno ako Kernel koristi informaciju koje su niti u barijeri kada donosi scheduling odluke, sto nisam proveravao.

Pogledao sam malo asemblerski kod i u pitanju je standardna kombinacija spinlock-a (sa PAUSE instrukcijom) i WaitForXXX API-ja sa malo back-off logike (moguce je podesiti koliko spinova thread moze da odradi pre nego sto krene na spavanje).

Testirao sam performanse, i one su gotovo identicne sa mojom hibridnom barijerom. Tako da cu za Windows 8 / Server 2012 verovatno koristiti Microsoft-ov API posto je onda kod nesto manji.

Cekanje na memorijsku adresu:

Ovaj API je isto vrlo zanimljiv za HPC aplikacije - posto omogucava isto fine-grained sinhronizaciju izmedju niti sa preciznoscu vecom od standardnog scheduler kvanta. "Obicnim" pa i vecini HPC aplikacija to vrlo verovatno nece trebati - ali ako nekome zatreba, svakako nije lose imati jednostavnu OS API funkciju umesto pisanja poveceg koda koji to radi i koji moze patiti od sinhronizacionih problema.

Na zalost, problem sa ovim API-jima je sto su za Windows 8 / Server 2012 (mada, pretpostavljam da je bezbedno koristiti RtlBarrier API direktno preko NtDll.dll-a u kom slucaju ce kod raditi na svim Windows-ima od Viste pa do danas) - tako da ce ljudi sigurno jos dugo vremena morati da imaju fallback za starije Windows-e.

Takodje, ovi API-ji su genericki (mada su performanse, bar barijera, svakako dobre) - neke HPC aplikacije mogu profitirati od custom scheduler-a sa specificnim strategijama za sinhronizaciju. Medjutim, takav kod je cesto potrebno "tune-ovati" za svaki procesor / brzinu memorije ponaosob + sto veca kolicina "lock-free" koda samo povecava mogucnost za propuste i bagove.


U svakom slucaju, SpikeFun 0.93 ce verovatno koristiti Win 8 barijere ako nadje metod u KernelBase.dll.

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo03.02.2013. u 16:29 - pre 135 meseci
v0.93 is out:

Download: http://www.dimkovic.com/node/7

Citat:

------------------------------------------------------------------------
v0.93 - Released on Feb 3rd 2013
------------------------------------------------------------------------

* Neuron Long-term Plasticity Homeostasis

* Updated performance monitoring code to Intel(R) PCM v2.3, supporting
memory I/O metrics for single-socket Sandy Bridge-E architecture.

Added support for memory bandwidth I/O readouts from uncore per each
CPU socket (requires uncore IMC readout support - supported by Intel
Nehalem, Westmere or Jaketown / Sandy Bridge-E architectures )

* Significantly increased simulation throughput for small simulations
running on large number of CPUs where threads spent significant time
(20+ %) in wait state. In SpikeFun 0.93 thread workload divergence
has been minimized thanks to improved load balancer, which allows to
nearly eliminate time threads spend spinning (or sleeping when wait
time is too large).

* Added support for Windows 8 / Server 2012 new Kernel synchronization
primitives ( Synchronization Barriers )




Verzija v0.93 donosi poboljsani load balancer koji sada pouzdano zauzima 99 - 100% procesora bez obzira na broj (provereno sa do 32 procesora). Minimizovano je vreme koje niti provode u cekanju na zavrsetak ostalih (obicno je vreme cekanja manje od 0.1ms po thread-u po time step-u)

Tako da su male simulacije na velikim sistemima nekih 20-30% brze - iz prostog razloga sto je u ranijim verzima zbog razlika u load-u dolazilo do "bacanja" ~20-tak % CPU vremena.

Jedina losija nuspojava je da sada kada SpikeFun trci, neki drugi procesi mogu ostati bez puno CPU ciklusa. Recimo, Windows 8 / Server 2012 task manager ne crta grafikone za CPU zauzece kada SpikeFun trci. Ako vam ovo predstavlja problem, mozete startovati SpikeFun sa -lowprio switchem, koja ce celom procesu dati nizi prioritet.

Uradio sam i referentni benchmark na dve masine sa novim SpikeFun-om:

http://www.dimkovic.com/node/20

--

Takodje, SpikeFun v0.93 moze da koristi sistemski API za thread barijere. SpikeFun direktno koristi interni (NTDLL) API RtlBarrier(), tako da ova opcija radi od Viste pa na dalje - a ne samo na Windows 8 / Server 2012 masinama. Prilicno sam siguran da Microsoft nece menjati ovaj API, posto vidim da i Windows 8 API koristi identicnu strukturu (RTL_BARRIER) samo sa drugim imenom.

Razlog zasto koristim Windows barijeru je samo zato sto mozda (nije provereno) ona daje hint Windows kernelu da je grupa niti u istoj barijeri.

--

Nova verzija, takodje, sadrzi novi Intel-ov referentni kod za merenje performansi (Intel PCM) koji sada moze da cita memorijski I/O saobracaj i na HEDT Sandy Bridge-E platformi (Core i7 36xx, 38xx). Dosadasnje verzije SpikeFun-a su koristile stariji PCM kod koji nije mogao da pristupa Sandy Bridge E uncore registrima vec je zahtevao Xeon E5.

--

I, konacno, STDP algoritam sada ima i algoritam za postizanje homeostaze. Homeostaza funkcionise kontrolom LTD koeficijenta (long-term-depression) koja ce smanjiti koeficijent ako uproseceni membranski potencijal u proteklih 1 sec padne ispod neke vrednosti. Time se sprecava depression runaway efekat koji bi izazvao kolaps simulacije zbog premalih jacina sinapsi.




DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo03.03.2013. u 16:46 - pre 134 meseci
v0.94 is out:

Download: http://www.dimkovic.com/node/7


Citat:

------------------------------------------------------------------------
v0.94 - Released on March 3rd 2013
------------------------------------------------------------------------

* Added support for Adaptive Exponential Integrate and Fire (AdEx)
neuron model [Brette R. and Gerstner W. (2005)]. To test the AdEx
model, just rename BaseNeuronTypes.adex to BaseNeuronTypes.xml (in
this file, pyramidal neurons of layer V/VI will be simulated using
AdEx model).

* Added support for injection of background current to every neuron.
To enable background current injection, just set the <InjectCurrent>
parameter in the simulation XML file <BaseSimulationParams> block.

* It is now possible to specify all neuron model parameters (except
gUp/gDown) for somatic and dendritic compartments separately

* Added option to toggle the rendering of orientation axes (0 key)



Verzija 0.94 donosi jos jedan model neurona - Adaptive Exponential Integrate and Fire (AdEx ili Brette-Gerstner). Vise o ovom modelu mozete procitati ovde:

http://www.scholarpedia.org/ar...ntial_integrate-and-fire_model

AdEx model je kvalitativno vrlo slican Izhikevich-evom modelu, tj. pripada klasi hibridnih dvodimenzionalnih modela sa resetom i ima vrlo slicno ponasanje kada su bifurkacije u pitanju. Medjutim, za razliku od Izhikevich-evog modela, inicijacija akcionog potencijala je modelirana eksponencijalnom fukcijom (za razliku od kvadratne kod Izhikevich-evog modela) sto je, inace, priblizniji opis prirodne inicijacije AP-a (posto su aktivacione krive u prirodnim neuronima najpribliznije opisane Boltzmann-ovim funkcijama).

Takodje, AdEx paramteri, za razliku od parametera Izhikevich-evog modela, su direktno u relaciji sa bioloskim parametrima koji se mogu direktno izmeriti, sto bar u teoriji znaci da se AdEx parametri mogu lakse prilagoditi tako da model opisuje "pravi" neuron. To se zaista i pokazalo u praksi, gde je AdEx model moguce relativno jednostavno tune-ovati uz pomoc Brian simulatora (GPU model fitting). Uz algoritam opisan u [3], AdEx model je bio u stanju da "pogodi" 89.9% akcionih potencijala pravog neurona koji je bio "tretiran" razlicitim strujama.

Interesantno, Brette i Gerstner [1] su pokazali da AdEx model moze da pogodi 96% akcionih potencijala kompleksnog modela neurona Hodgkin-Huxley tipa. Zapravo 100% fit je nemoguc, posto i prirodni neuroni nemaju 100% verno "ispaljivanje" AP-ova. 96% je jako visok procenat ako se uzme u obzir drasticno manja kompleksnost AdEx modela u poredjenju sa HH modelima.

Sve ovo AdEx, zajedno sa Izhikevich-evim modelom, cini vrlo dobrim modelom za simulacije koje imaju veoma veliki broj neurona, gde nije potrebno modelirati posebno razlicite jonske struje sto je jedino moguce sa drasticno kompleksnijim modelima Hodgkin-Huxley tipa.

Evo kako izgleda ponasanje AdEx modela u poredjenju sa prirodnim kortikalnim neuronom:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3051271/



Primetiti da Izhikevich model u ovom takmicenju nije imao visok skor - medjutim algoritam za model-fitting nije dobar za Izhikevich-ev model neurona i vrlo verovatno mnogo bolji rezultati mogu da se postignu koriscenjem drugacijeg modela za nalazenje optimalnih parametara, recimo: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5530803

[1] - http://www.ncbi.nlm.nih.gov/pubmed/16014787
[2] - http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3051271/
[3] - http://lcn.epfl.ch/~gerstner/PUBLICATIONS/Jolivet08b.pdf
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Prikačeni fajlovi
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo03.03.2013. u 17:30 - pre 134 meseci
Inace, koga zanima, AdEx model opisuje evoluciju membranskog potencijala ("voltaze") uz pomoc dve diferencijalne jednacine i jednog reset uslova:



Kao sto se vidi, model je vrlo slican Izhikevich-evom. Razlike su: inicijacija akcionog potencijala je opisana eksponecijalnim, a ne kvadratnim, izrazom. Takodje, svi parametri modela imaju direktno biolosko znacenje, sto u teoriji omogucava jednostavno nalazenje optimalnih parametara za konkretan prirodni neuron. Takodje, moguce su i direktne redukcije modela Hodgkin-Huxley tipa, kao sto je pokazano u vezbi 3 u [1]

Kompleksnost AdEx modela je slicna Izhikevich-evom. AdEx model zahteva nesto vise instrukcija po neuronu/kompartmentu zbog eksponencijalne funkcije, ali to je moguce kompenzovati nekom od aproksimacija exp() f-je koje postoje na svim popularnim platformama. DigiCortex engine trenutno ne koristi aproksimaciju za eksponencijalnu f-ju ali to ce biti dodato u nekoj od sledecih verzija.


[1] - http://lcn.epfl.ch/~gerstner/P...hapterPERFORMANCEandLIMITS.pdf

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Prikačeni fajlovi
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.hsi.kabelbw.de.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo14.03.2013. u 11:32 - pre 134 meseci
Malo vesti - CUDA verzija SpikeFun-a vrlo lepo napreduje, tako da ce biti releasovana uskoro. GTX680 bez problema krcka neurone brze nego 16 Xeon jezgara i to vise puta :-)

A za testiranje mi je upravo stigla i fina kartica :-)



+ jos jedna Tesla C2075, cisto da se zagreje gajba.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Prikačeni fajlovi
 
Odgovor na temu

ventura

Član broj: 32
Poruke: 7781
*.static.isp.telekom.rs.



+6455 Profil

icon Re: SpikeFun - Artificial Nervous System Demo14.03.2013. u 11:43 - pre 134 meseci
Mnogo ti je skup taj screen saver :)
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.hsi.kabelbw.de.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo14.03.2013. u 12:48 - pre 134 meseci
Pa nema ozbiljnog hobija bez ozbiljnih ulaganja :-)

Dobra stvar je sto i GTX Titan i Tesla C2075 imaju po 6 GB VRAM memorije. Bice interesantno videti da li mogu da napakujem milion neurona na njih :)
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo15.03.2013. u 00:07 - pre 134 meseci
Evo nekih preliminarnih rezultata (samo jedan GPU aktivan, GTX Titan):

DigiCortex/SpikeFun 0.95pre
Referenca: 2 x 8 core Xeon E5 @3.1 GHz
Test: NVidia GTX Titan (stock)

110K neurona, 12M sinapsi --> GPU: ~1.0x real-time, CPU: ~0.2x real-time (~5x brze od CPU-a)
262K neurona, 30M sinapsi --> GPU: ~0.52x real-time, CPU: ~0.085x real-time (~6x brze od CPU-a)

--

Dakle, vrlo rana verzija DigiCortex CUDA koda je trenutno nekih 5-6 puta brza na jednoj GTX Titan kartici od 16 Xeon jezgara na 3.1 GHz.

Nije lose, uzevsi u obzir da taj Titan (koji inace nije jeftina kartica) nekih ~4x jeftiniji od 2 Xeon-a 2687W, znaci dobijamo 20-24x vece performanse po $/EUR :)

I to sa GPU kodom koji je u vrlo ranoj verziji!
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo15.03.2013. u 00:26 - pre 134 meseci
... i

525K neurona, 86M sinapsi --> GPU: ~0.25x real-time, CPU: ~0.035x real-time (~7.1x brze od CPU-a)

Ono sto je vazno napomenuti - u pitanju je vrlo optimizovan CPU kod (koji koristi 256-bitne AVX instrukcije). Cesto se u poredjenjima CUDA vs. CPU koristi neoptimizovan CPU kod pa rezultati nemaju puno smisla.

Ovde je u pitanju CUDA kod koji nije previse optimizovan vs. optimizovan CPU kod. I pored svega toga, GPU bez problema biva ~7x brzi od 16 modernih CPU jezgara. To samo pokazuje koliko su GPU-ovi dobri danas za naucne i industrijske aplikacije.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo16.03.2013. u 22:41 - pre 134 meseci
v0.95 is out...

http://www.digicortex.net/node/34

Code:

------------------------------------------------------------------------
v0.95 - Released on March 16th 2013
------------------------------------------------------------------------
  
  * First (alpha) release of CUDA compute capability.  To enable CUDA,
    DigiCortexConfig.cuda should be renamed to DigiCortexConfig.xml
    
    CUDA support is in a very early stage, and support only a subset
    of DigiCortex features.
    
    Limits of the current CUDA compute module:
    
      - Support for 64-bit version of DigiCortex only
      
      - Only one GPU is supported
      
      - It is not yet possible to spread the simulation between compute
        nodes (e.g. CPU + GPU)
        
      - Only Izhikevich model is supported (AdEx coming soon)
      
      - STDP is not supported yet

  * Fixed a bug where video capture was extremely slow during simulation



v0.95 donosi preview buduce podrske za GPU akceleraciju. U pitanju je vrlo rana verzija koda, koja jos nije optimizovana i kojoj nedostaje dosta feature-a DigiCortex-a. Ali bez obzira na to, i tako ran GPU kod bukvalno ostavlja u prasini optimizovan CPU kod koji trci na 16-jezgara.

Uporedni test NVidia GK110 GPU-a vs. dual Intel Xeon E5 2687W: http://www.dimkovic.com/node/35

Evo nekih rezultata:



Cak i na mom laptopu, bedni GTX 650M izvlaci 0.3x real-time faktor za simulaciju od 110 hiljada neurona i 11M sinapsi, sto je 30% brze od dual Xeona E5 sa 16 jezgara na 3.1 GHz! Naravno sve ovo je moguce zato sto su simulacije neurona inherentno masivno paralelne, i kao takve predstavljaju pogodan cilj za optimizaciju na GPU arhitekturama.

Cisto primera radi, mala simulacija sa 32 hiljade neurona / 2 miliona sinapsi radi "samo" duplo brze na CUDA-i, ali kada se broj popne na 500 hiljada neurona i 86 miliona sinapsi, GPU pocinje da urnise CPU sa >7x brzom simulacijom. I to neoptimizovani GPU kod...
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Prikačeni fajlovi
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo27.03.2013. u 22:22 - pre 133 meseci
insideHPC intervju sa GTC2013 o DigiCortex projektu sa Anom (koja je napisala CUDA kod) i mojom malenkoscu:

http://insidehpc.com/2013/03/2...gine-maps-the-brain-with-gpus/

Next step ce biti multi-GPU support i real-time simulacija milion neurona / par stotina miliona sinapsi na jednom GPU-u.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Nebojsa Milanovic
Pančevo

SuperModerator
Član broj: 16
Poruke: 8305
*.dynamic.sbb.rs.



+1342 Profil

icon Re: SpikeFun - Artificial Nervous System Demo27.03.2013. u 22:30 - pre 133 meseci
Bravo Ivane!

Šta reći... svaka reč je suvišna
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16683
*.dip.t-dialin.net.



+7169 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.03.2013. u 18:28 - pre 133 meseci
Hvala hvala :-)

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1181



+835 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.03.2013. u 20:53 - pre 133 meseci
Engleski ti je odlican, takodje i projekat..
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.03.2013. u 21:41 - pre 133 meseci
Ej, mnogo ste dobar par! D:
Ono, reklo bi se da prosto udarate nokaute - iz hobija! D:

Nadam se da zdravlje i strpljenje neće nikada da vas napusti.

Srbi bre! Yeeey!
about:networking
 
Odgovor na temu

[es] :: Veštačka inteligencija :: SpikeFun - Artificial Nervous System Demo
(TOP topic, by Gojko Vujovic)
Strane: << < .. 5 6 7 8 9 10 11 12 13 14 ... Dalje > >>

[ Pregleda: 132590 | Odgovora: 455 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.