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: << < .. 4 5 6 7 8 9 10 11 12 13 ... Dalje > >>

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Dimkovic

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



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo30.10.2012. u 19:27 - pre 139 meseci
v0.85 is out:

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

Citat:

------------------------------------------------------------------------
v0.85 - Released on October 30th 2012
------------------------------------------------------------------------

* Added RPC Server (using ZeroMQ as the transport layer) which will be
used in the future for remote simulation control/management and
distributed computing. Currently with 0.85 only 4 command line
tools are provided (enable_neuron, disable_neuron, axonal_delays)
with the aim to extend this list significantly in the future.

* Introduction of the compute plug-ins. Compute plug-ins will be used
in the future to add more compute hardware support (e.g. OpenCL,
CUDA and distributed computing). Currently with 0.85 only one plugin
is provided, for CPU-based compute (port of the old built-in CPU
compute core)

* Simulation runtime thread-management code is now 100% lock-free,
which gives performance gains up to 1% on large-threaded systems

* Optimized dendritic-current calculation (faster dendritic tree walk)


Sa v0.85 sam poceo implementaciju RPC client/server komunikacije koja ce omoguciti potpunu kontrolu SpikeFun-a preko mreze kao i distribuirani computing. Za sada postoje samo 3 utility cmdline tool-a (enable_neuron.exe, disable_neuron.exe i delay_stats.exe) koji mogu da kontrolisu trenutnu simulaciju, dok ce u buducnosti biti dodato jos mnogo drugih alatki.

Za transport koristim ZeroMQ paket, koji nudi vrlo efikasnu TCP-baziranu messaging implementaciju bez bloat-a. Planiram da izbacim RPC API kao deo SDK-a u buducnosti.

Sledeca novost je plug-in model za computing module. Jos uvek je u work-in-progress stadijumu ali je stari compute kod vec prebacen u novu arhitekturu i sledeci korak je CUDA plug-in.

Takodje, v0.85 ima potpuno lock-free kod za menadzment worker niti. Eliminacija lock-ova je bio posao sa puno glavobolje, ali je sada konacno gotov. Ubrzanja nisu spektakularna na hyperthreading masini sa 32 logicka procesora, oko 1% ali ce verovatno biti veca na masinama sa vise procesora + nije lose znati da niti nece biti blokirane dok procesiraju zajednicke podatke.

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo30.10.2012. u 19:44 - pre 139 meseci
Inace, delay_stats alatka daje distribuciju duzine aksonalnih konekcija (u vremenskom domenu - tj. vremenu koje je potrebno za propagaciju akcionog potencijala).

Startujte SpikeFun sa nekom simulacijom, i u command-prompt prozoru otkucajte:

Code:

delay_stats -c


I dobicete CSV listu koja se moze importovati u, recimo, Excel.

Evo kako izgleda distribucija duzina konekcija u simulaciji sa 4 miliona neurona i 870 miliona sinapsi:



Kao sto se vidi, distribucija konekcija je takva da je najveci broj konekcija vrlo kratak (preko 90% konekcija su krace od 5 ms) sto odgovara "small-world" mreznoj topologiji koja je karakteristika nervnih sistema zivih bica. Small-world topologija je optimalna sto se potrosnje energije tice i predstavlja dobar kompromis izmedju mogucnosti komunikacije na daljinu i stednje energije za prenos podataka.
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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo04.11.2012. u 12:57 - pre 139 meseci
v0.86 is out - sto se vidljivih promena tice, manje-vise je bugfix-release:

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

Code:

------------------------------------------------------------------------
v0.86 - Released on November 4th 2012
------------------------------------------------------------------------

  * Optimized in-memory neuron grouping which improves cache locality
  
  * Fixed a bug which triggered rare random crashes during simulation
    build-up on NUMA systems   



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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo04.11.2012. u 18:37 - pre 139 meseci
Dodao sam jos jednu malu stvar:

Code:

 * Optimized thread-barrier code with hybrid spinning / wait strategy.
    This hybrid approach improves performance on systems with the large
    number of CPU cores and simulations with low number of synapses,
    where Windows thread scheduling quantum is too coarse and ends in
    worker threads spending too much time suspended (waiting to be 
    'unlocked').  Hybrid spinning is set in a way that does not tax the
    CPU too much but at the same time manages to catch many occasions
    where the thread would end up sleeping for 10-15 ms otherwise


Problem sa malim simulacijama (tipa manje od milion neurona) na brzim masinama sa puno procesora (recimo, 32 logicka) je da granularnost (tj. quantum) Windows scheduler-a (koja je obicno 10 ms ili 15 ms) suvise dugo traje u odnosu na workload individualnih thread-ova.

U tom slucaju niti provode dosta vremena cekajuci da budu probudjene - cak i ako su ostale niti zavrsile posao jednu milisekundu (ili krace), zbog relativno dugog vremena Windows scheduler kvanta nit ce provesti do 14 milisekundi u stanju cekanja.

Situacija se najbolje vidi na mom test sistemu: Xeon E5, 16 jezgara sa 32 logicka CPU-a, mala simulacija od 32768 neurona ne moze da zauzme vise od ~60% procesora :( Ako se analizira sta se desava, vidi se da work niti provode abnormalno puno vremena cekajuci da budu odblokirane od strane thread-barijere. Da bi se postigao CPU load od 97-100% potrebno je terati 2 miliona neurona.

Dakle, situacija nije dobra.

Windows API ima vrlo gadan tandem poziva timeBeginPeriod()/timeEndPeriod() sa kojim bukvalno bilo koja aplikacija moze da setuje globalni (OS-wide) kvantum i da spusti vreme do jedne milisekunde. Problem sa tim pristupom je da se drasticno povecava overhead u servisiranju interapta - mnoge aplikacije zloupotrebljavaju timeBeginPeriod()/timeEndPeriod() posto su pisane jako lose, pa developeri pribegavaju ovom silovanju sistemskog scheduler-a koji takodje povlaci i losije trajanje baterije na laptopu. Obicno aplikacije koje zahtevaju preciznost nekih tajmera to rade, posto je timeBeginPeriod() najlaksi nacin da se postigne cilj - iako je pogresan, i gotovo sigurno ukazuje da je aplikacija lose projektovana (osim u retkim slucajevima gde je zaista potrebno imati tako nisko vreme)

SpikeFun v0.86a ima nedokumentovanu komandu -setquantum <n> gde je n broj milisekundi - medjutim ova komanda je samo za debugging i iskreno ne preporucujem koriscenje iste. Posto timeBeginPeriod/timeEndPeriod() predstavlja cist 100% bad coding, ovaj problem sam donekle resio na drugi nacin:

Thread barijera sada ima odredjen broj ciklusa koje provodi u busy-wait loop-u gde ce egzekucija biti prebacena na drugu HT nit. Tek kada broj spinova predje odredjen threshold nit ce otici na spavanje gde je jedini nacin da se nastavi budjenje od strane OS-a (event).

Threshold je izabran tako da ne bude suvise veliki (sto bi rezultovalo bacanjem CPU ciklusa na cekanje) ali i dovoljno veliki da "uhvati" dovoljan broj situacija gde bi nit otisla na spavanje (i samim tim bila nedostupna u sledecih 1-15 ms).

Situacija se definitivno popravila - sada simulacija sa 32768 neurona uzima 75% procesorskog vremena, i biva brza i do 10% ali ocigledno jos ima mesta za unapredjenje tako da cu jos eksperimentisati sa ovim.

Najbolje resenje za Windows 7+ bi bilo koriscenje User Mode Scheduling ekstenzija. Windows 7 API ima mogucnost da aplikacija totalno preuzme procesor(e) i da manuelno scheduluje niti na njima. U toj situaciji ne bi bilo nikakvog cekanja posto scheduler moze odmah da zna da su sve niti zavrsile svoj posao...

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo04.11.2012. u 18:57 - pre 139 meseci
Inace, koga zanima, evo svih varijanti koje sam probao za implementaciju thread barijere:

1. Windows Event-only (niti se bude sa SetEvent(), spavaju sa WaitForSingleObject) --> ~0.710x real-time, ~60-65% CPU
2. Windows Condition Varijable + Critical Section (Vista+ Kernel) --> ~0.550-0.6x real-time, ~95% CPU
3. Ideja sa http://www.spiral.net/software/barrier.html --> ~0.550x real-time, ~100% CPU
4. Hibridni "Sleeplock" (Busy-wait + yield na drugu HT nit) + Windows Event --> 0.75-0.79x real-time, ~75% CPU

Kao sto se vidi, metod #4 se pokazao najbolje, ali je CPU load i dalje relativno nizak, sto znaci da postoji prostor za optimizaciju.

Metode #2 i #3 su uspesne u zakucavanju procesora na blizu 100% ali, na zalost, usporavaju izvrsavanje simulacije. Nisam se previse udubljivao zasto se to desava, doduse.

Iskreno, najvece razocarenje su mi Windows Vista API-ji za tzv. "lightweight" sinhronizaciju. Condition Varijable u NT6 kernelu su user-mode objekti i Microsoft ih je reklamirao kao optimalno resenje. Na zalost, u mom workload-u su se pokazale kao lose resenje.
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

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
2001:8c8:0:130:.*



+1365 Profil

icon Re: SpikeFun - Artificial Nervous System Demo05.11.2012. u 08:11 - pre 139 meseci
Kad bi morao da portuješ SpikeFun na Linux, šta bi bio najveći problem u tom procesu?
I koliko bi slabije performanse bile, i zašto? Znam je ovo nezahvalno procijeniti, ali baš me zanima.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

Ivan Dimkovic

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



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo05.11.2012. u 10:51 - pre 139 meseci
Najveci problem? Pa mislim da nema nekih problema, samo treba da se sedne i odradi ;-)

- GUI: Ovo je jedino Windows-specific, znaci treba raspisati novi GUI, recimo u QT-u
- Jako malo koda je Windows-specific, jedino neke osnovne primitive za sinhronizaciju / threading, ali to se lako da prebaciti na Linux/POSIX

Planiram da to uradim cim se odradi CUDA podrska, posto za CUDA podrsku i ovako i onako moram da skockam svu arhitekturu, pa ce onda biti i laksi posao da se to prebaci na Linux.

Citat:

I koliko bi slabije performanse bile, i zašto?


Sumnjam da bi performanse bile slabije - u najgorem slucaju bi trebalo da budu uporedive sa Windows-om.

Mozda je moguce izvuci i nesto bolje performanse na Linuxu zbog vecih mogucnosti tweak-ovanja OS scheduler-a. Mislim da je Linux, na kraju krajeva, bolji izbor za ovakav tip aplikacije od Windows-a posto imas vise mogucnosti tweakova za HPC upotrebu.

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

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
2001:8c8:0:130:.*



+1365 Profil

icon Re: SpikeFun - Artificial Nervous System Demo05.11.2012. u 12:07 - pre 139 meseci
Možda sam malo preskočio priču sa početka pa je ovo odgovoreno, ali koliko grafička utiče na performanse?
Jer ipak se grafički drajveri na Windowsu bolje održavaju i više su optimizovani. Bar mi se čini tako što se tiče optimizacije.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

Ivan Dimkovic

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



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo05.11.2012. u 12:34 - pre 139 meseci
Za sada, simulacija se radi kompletno na CPU-u - GPU samo radi vizualizaciju, tako da jedino to moze trenutno da se ponasa drugacije.

E sad, sam OpenGL kod za vizualizaciju nije kompleksan - par shader-a i dosta geometrije, to su OpenGL 2.0 feature-s tako da sumnjam da posteni Linux drajveri imaju problema sa tim, no bilo bi interesantno to testirati i videti da li je zaista tako.

Kada budem ubacio CUDA podrsku onda ce GPU raditi i deo simulacije - ali koliko znam, CUDA podrska je odlicna na Linuxu tako da to ne bi smelo biti problem.
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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo12.11.2012. u 20:07 - pre 139 meseci
v0.87 is out...

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

Citat:

------------------------------------------------------------------------
v0.87 - Released on November 17th 2012
------------------------------------------------------------------------

* NUMA-specific performance optimizations

* Fixed a bug on Win7+ x64 systems where processor affinity was not
set properly for the worker threads


Vidljivih promena je malo - posto sam trenutno busy sa razvojem plug-in arhitekture.

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo18.11.2012. u 16:30 - pre 139 meseci
v0.87a is out...

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

Code:

------------------------------------------------------------------------
v0.87a - Released on November 17th 2012
------------------------------------------------------------------------

  * Disabled wireframe rendering of the brain mesh due to significant
    drop in rendering performance on NVidia Kepler GPUs with 30x.xx 
    drivers when GL_LINE is used as glPolygonMode().  Rendering switched
    to GL_FILL with background thread doing depth sorting of brain polys
    every 10th frame (when camera angle is changing) to save CPU time.

  * Reduction in memory reservation for the spiking buffers due to 
    better estimation of worst-case spiking scenarios.  Total reserved
    memory (not necessarily used, just reserved for the worst case) 
    has been reduced by approx. 50% 
    
  * Optimized memory layout for synaptic storage with 32 bits of data
    per synapse removed.

  * 32-bit build of SpikeFun is now linked as "large address aware",
    allowing slightly larger simulations to run as it is able to use up
    to 3 GB (on 32-bit Windows) or 4 GB (on 64-bit Windows) of address 
    space where OS is configured to allow large-address space for 32-bit
    applications.  However, 64-bit SpikeFun is recommended to be used
    when possible (when running on 64-bit Windows)


Manje-vise bugfix release, sa malo optimizacija.

Zbog NVidia Kepler grafickih kartica sam morao da iskljucim wireframe render kortikalne povrsine, posto su performanse drasticno losije nego sa svim ostalim modelima. Problem je u drajverima, koliko mogu da primetim, posto npr. na Macbook Retina Kepler-u (650M) problem ne postoji sa originalnim drajverima, ali cim se predje na novije 30x.xx FPS pada na ~4-5. Ista stvar se desava i na desktopu sa GTX 680 karticom, samo sto u tom slucaju nisam proveravao da li problem nestaje sa starim drajverima.

U svakom slucaju, novi render izgleda ovako:



Dodatna komplikacija sa renderingom transparentnih punih/osencenih trouglova kao u ovom slucaju je sto pri iscrtavanju moraju biti sortirani po inverznoj udaljenosti od kamere (tj. dalji se crtaju pre blizih, posto je depth-cull iskljucen). Zbog toga je neophodno sortirati ~800 hiljada trouglova svaki put kada se promeni pozicija kamere. Kako bi ovo sto manje smanjivalo rendering performanse, depth-sort se radi max. jednom u 10 frejmova i u posebnom thread-u (asinhrono). Mislim da je to optimalni kompromis izmedju kvaliteta rendera i CPU zahteva.

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo25.11.2012. u 23:04 - pre 139 meseci
v0.88 is out...

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

Code:

------------------------------------------------------------------------
v0.88 - Released on November 25h 2012
------------------------------------------------------------------------

  * Improved thalamic nuclei parcellation, including division of the
    pulvinar thalamic nuclei into anterior, medial and lateral. Rules
    guiding synapse formation of thalamic relay cells have been extended
    so that cross-nuclei connections between core TRN cells are not
    allowed.
    
  * Reduced GPU memory load and faster rendering of the cortical surface
  
  * Dendritic current computation optimizations resulting in speed gains


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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo26.11.2012. u 22:36 - pre 139 meseci
Posto sam prodao Z i moram da ga posaljem sutra, uradio sam up-to-date testiranje performansi:

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



Kao sto se vidi, SVZ je samo nesto malo sporiji sto se CPU-a tice, nesto malo brzi sto se memorijskog I/O-a tice.

Ono sto se ne vidi je GPU, gde je MBPR dosta bolji, naravno.

Interesantan kuriozitet je strategija hladjenja - SVZ gotovo odmah krece u full-speed za hladjenje, i temperaturu drzi konzistentno nekih 15-17 stepeni ispod kriticne (TJunction).

Macbook Retina ima sasvim drugaciju strategiju - prvih 10-20 sekundi ventilator uopste ne radi, i CPU jako brzo (za oko 15-20 sec) ulazi u throttling mod gde svakih 2-3 sekunde frekvencija sa 3.3 GHz pada na 1.7 GHz. Tek posle ~1 minut MBPR ventilatori krecu u full-speed mod i onda throttling prestaje ako GPU nije previse aktivan.

Ako je GPU previse aktivan, apsolutno je nemoguce izbeci throttling sa CPU-om na frekvencijama iznad 2.7-2.8 GHz. Po defaultu je meni CPU u Windowsu setovan da ne ulazi u Turbo (!?!) mozda je ovo upravo i razlog - posto Apple drzi NV GPU stalno ukljucen.

Ako sa ThrottleStop-om forsirate CPU u Turbo rezim, posle 20-tak sekundi ce CPU flegovati PROCHOT situaciju, i halt-ovati klok na delic sekunde svake sekunde, sto je jos gori efekat nego Apple strategija.

--

Ocigledno je Apple-ov prioritet bila tisina, posto laptop ima termalne mogucnosti da se izbori bar sa Intel-ovim CPU-om na turbo frekvenciji -ali samo ako je ventilator na 100% brzini, sto se ne desava skoro citav minut. Moram da vidim da li postoji neki nacin da se ventilator aktivira brze.
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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo10.12.2012. u 20:56 - pre 138 meseci
v0.89 is out:

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

Code:

  * Extension of the implementation of the Tsodyks-Markram model of 
    synaptic release allowing differential signalling via the same axon 
    of a given pre-synaptic neuron.  It is now possible to define 
    different synapse types that obey Thodyks-Markram kinetics 
    (depressing, facilitating, pseudo-linear; see SynapseLibrary.xml) 
    and configure different synaptic expression of a pre-synaptic neuron 
    type depending on the post-synaptic target type.
    
    For example, Pyramidal neurons form facilitating synapses with LTS
    interneurons, and depressing synapses with other neuron types. For
    each synapse type (and there are no limits with the number of
    defined synapses) it is possible to tweak U, F and D parameters
    
  * Pyramidal neurons now form facilitating synapses with LTS cells
  
  * Pyramidal neurons of L6 now form facilitating synapses with thalamic
    neurons (all types)
    
  * Configurable ratios of fast (AMPA/GABAa) and slow (NMDA/GABAb)
    receptors for each synapse types (see SynapseLibrary.xml). This way
    it is possible to create synapses that are pure AMPA/GABAa and/or
    synapses with non-equal ratio of the AMPA/GABAa to NMDA/GABAb

  * Pyramidal neurons of Cortical Layer V are now of IB (Intrinsically-
    Bursting) type.  See BaseNeuronTypes.xml, p5_l23.xml and p5_l56.xml
  
  * New improved dendritic tree builder with customizable tree branching
    factor for each cell type (except pyramidal neurons, where factors
    are still hardcoded, making them configurable is work in progress)

  * Maximum allowed number of synapses per neuron increased to 10000
    (previous limit was 1024).  Please note that the maximum number of
    synapses per simulation is still 2^32-4 (4294967292). Simulations
    where total possible number of synapses is larger than 2^32-4 will
    fail during build-up phase.   
    
   * Misc. small bugfixes


^ Na slici sa leve strane se vide 2 piramidalna neurona i jedan inhibitorni interneuron.

v0.89 donosi nekoliko vecih dodataka u simulaciji:

- Diferencijalna signalizacija uz pomoc razlicitih tipova sinapsi u zavisnosti od ciljanog neurona

Ovo je u stvari prosirenje dosadasnje implementacije Tsodyks-Markram modela sinapsi koje sada dozvoljava da se za svaki tip neurona (pre sinapticki) definisu razliciti tipovi sinapsi koje taj neuron moze formirati sa razlicitim tipovima post-sinaptickih neurona.

Ovaj fenomen je vidjen in vivo u korteksu, gde npr. piramidalni neuroni formiraju tzv. "depresivne" sinapse (jacina EPSP-ova opada sa vremenom pri ponavljajucim pobudjujucim postsinapcikim potencijalima) sa drugim piramidalnim neuronima, ali sa odredjenim tipovima kortikalnih interneurona (inhibitornih) sinapse imaju potpuno drugacije ponasanje (tj. "facilitating" - gde se amplituda EPSP-ova povecava u slucaju ponavljajuceg stimulusa)

Evo kako to izgleda u originalnim merenjima (Markram et al [1])



Sa leve strane su rekonstrukcije 2 piramidalna neurona i jednog inhibitornog interneurona. Sa desne strane (gore i dole) se vidi razlicito ponasanje sinapsi koje levi piramidalni neuron formira sa interneuronom (gore) i desnim piramidalnim neuronom (dole). Sinapse formirane sa interneuronom manifestuju tzv. "facilitating" ponasanje gde se EPSP amplituda povecava u slucaju ponavljajuceg stimulusa, dok sinapse formirane na drugom piramidalnom neuronu imaju potpuno obrnuti efekat (tzv. "depresiju")


- Konfigurabilni odnos izmedju brzih i sporih receptora (AMPA:NMDA i GABAa:GABAb)

Od sada je, takodje, moguce definisati odnos izmedju razlicitih vrsta receptora formiranih na post-sinaptickom neuronu u zavisnosti od tipa sinapse. Dosadasnje verzije SpikeFun-a su imale hardkodovan jednak odnos izmedju AMPA i NMDA (GABAa i GABAb) receptora. Sa ovim je moguce, na primer, definisati senzorne sinapse.

Na primer, sinapse koje formiraju retinalne ganglionske celije sa talamickim relejnim neuronima ukljucuju samo AMPA receptore na post-sinaptickoj strani. Takodje, ove sinapse su "facilitating" tipa, sto se takodje moze postici podesavanjem U, F i D parametara za sinapsu...



[1] - "Differential signaling via the same axon of neocortical pyramidal neurons"
Proc. Natl. Acad. Sci. USA Vol. 95, pp. 5323–5328, April 1998 Neurobiology
Henry Markram, Yun Wang, Misha Tsodyks

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo12.12.2012. u 21:10 - pre 138 meseci
Evo jos malo skaliranja:

16.7 miliona neurona, 2.1 milijarde sinapsi



Pretpostavljam da je ovo najveca simulacija kortikalnih neurona izvedena u kucnoj radinosti :-)
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

Igor Gajic

Član broj: 93194
Poruke: 747
*.dynamic.isp.telekom.rs.



+987 Profil

icon Re: SpikeFun - Artificial Nervous System Demo12.12.2012. u 21:18 - pre 138 meseci
Ovakva simulacija je za PhD nivo. Da li si imao takvih planova ?
 
Odgovor na temu

Ivan Dimkovic

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



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo12.12.2012. u 21:28 - pre 138 meseci
Hmm, hvala za pohvalu ali mislim da je ovo dosta ispod PhD nivoa.

Razlog je prost, u pitanju je samo implementacija postojecih modela, efikasna/optimizovana, ali i dalje samo implementacija. Cak i "nize" doktorske titule (Ph.D.) zahtevaju mnogo vise tj. konkretno istrazivanje sa novinama, a o "visim" tipa Sc.D. i da ne pricamo.
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

staticInt

Član broj: 66101
Poruke: 485
..28.dynamic.barak-online.net.



+43 Profil

icon Re: SpikeFun - Artificial Nervous System Demo12.12.2012. u 23:46 - pre 138 meseci
Istina nije za PhD ali svakako ima potencijal da se razvija u vise smerova i da poprimi ozbiljnije oblike.
Ivane bilo bi dobro da uradis neki joint research sa nekom ekipom koja radi u toj oblasti kapiram da bi tako software doprineo necem korisnom i za druge osim za tebe :) posto shvatam da ti je ovo projekat gde si zeleo da i sam izucis nesto a i da se zabavis, software svakako ima potencijal da preraste u nesto ozbiljnije.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.web.vodafone.de.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo14.12.2012. u 19:34 - pre 138 meseci
Videcemo. Mozda ce biti neke kooperacije sa odredjenim CPU/GPU vendorima i njihovim exascale timovima - ali je previse rano za bilo kakvu pricu na tu temu.

Sto se akademije tice, mislim da u ovom momentu SpikeFun jos nije na nivou koji moze biti koristan - ali do verzije 1.0 planiram da dodam prilicno puno stvari koje ce ici u smeru generalnog large-scale simulatora koji moze da se siri i modelira najnovije fenomenoloske modele neurona i plasticnosti... onda ce mozda i biti smisla za kooperaciju sa akademijom.

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: 16687
*.dip.t-dialin.net.



+7177 Profil

icon Re: SpikeFun - Artificial Nervous System Demo28.12.2012. u 00:43 - pre 137 meseci
v0.90 is out:

Code:

------------------------------------------------------------------------
v0.90 - Released on December 27th 2012
------------------------------------------------------------------------
  
  * Increased complexity level of the pyramidal neurones, including 
    basal dendrites and dendritic tree branching (apical tuft)
    
  * Improved axonal and dendritic arbor spreading boundary checking by
    employing optimized (Monte Carlo method) intersection test between
    the spreading region cylinders.  Previous versions of DigiCortex did
    only limited checks by approximating cylinder regions as capsules
    
  * Optimized dendritic current calculation
    
  * Improved matching of desired connectivity statistics (requires pool
    of pre-synaptic neurons large enough to accomodate the requirements,
    which is typically only possible when neuron volume density is high
    enough)

  * Improved drawing of individual neuron axonal terminals and dendrites
    when neuron is selected
    
  * STDP bugfixes (preventing accidental weight runaway)

  * Fixed a bug where some neuron somae would get assigned incorrect
    (zero) coordinates during the simulation build-up


Vise informacija o verziji v0.90 mozete naci ovde:

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

Piramidalni Neuroni

Verzija v0.90 donosi kompleksnije morfologije piramidalnih neurona. Do sada su piramidalni neuroni modelirani kao "ball and stick" aproksimacije sa somatskim kompartmentom i nizom vertikalnih (apikalnih) kompartmenta - bez grananja. Ova aproksimacija je propustala neke od bitnih karakteristika piramidalnih neurona kao sto su grananja u "tuft" regionu (tj. "cuperku" koji nastaje u distalnom regionu).

Novi model podrzava grananja u dendritskom stablu, bazalne dendrite i bifurkaciju u apikalnom regionu ("tuft"):



Konfiguracija za svaki neuron omogucava zadavanje laminarnog pruzanja dendritskog i aksonalnog stabla kao i verovatnocu grananja (ovo ce u buducnosti biti zamenjeno daleko boljim modelom, ali o tom po tom).

Sa novim modelom piramidalnih neurona je moguce modelirati zanimljive fenomene koji postoje u piramidalnim neuronima - recimo zasebna racunanja u razlicitim granama dendritskog stabla koja se u prirodnim kolima koristi za detekciju koincidencije npr.


Kreiranje Morfologija

Kao sto se vidi iz slike gore, dendritsko i aksonalno stablo imaju laminarne limite koji se mogu aproksimirati cilindrima (i sferom za bazalne dendrite). Testiranje da li se 2 neurona tj. njihova aksonalna i dendritksa stabla uopste preklapaju zahteva testiranje preseka izmedju 2 cilindra (ili cilindra i sfere, za peri-somatski slucaj).

Na zalost, numericko resenje za testiranje preseka 2 cilindra je kompleksno i dosadasnje verzije SpikeFun-a su pribegavale klasicnoj optimizaciji iz 3D aplikacija poput gaming-a i ray-tracinga - cilindri su tretirani kao "kapsule" (za neupucene, kapsula je cilindar koji ima polu-sfere kao "poklopce"). Testiranje preseka 2 kapsule je trivijalno - potrebno je samo izracunati udaljenost 2 duzi koja predstavljaju ose cilindara - ako je udaljenost manja od zbira radijusa 2 cilindra koja se testiraju, kapsule se preklapaju.

Medjutim, aproksimacije cilindara kapsulama uvode i problem laznih pozitva tj. situacija kada se kapsule preklapaju ali pravi cilindri ne (npr. ako je presek samo izmedju polusfera koje cine "zatvarace" kapsula). U slucaju neurona ovo znaci i mogucnost da se 2 neurona, koja inace ne bi mogla povezati, spoje.

SpikeFun 0.90 radi testiranje preseka "pravih" cilindara ako test kapsula daje pozitivan rezultat. Medjutim, umesto numerickog resenja se koristi Monte Karlo metoda radi sto boljih performansi. Metoda se sastoji u kreiranju slucajno rasporedjenih tacaka unutar zapremine jednog od 2 cilindra i testiranja da li se tacke nalaze unutar drugog cilindra. Test je moguce implementirati jako efikasno uz pomoc par optimizacija (recimo nije potrebno generisati slucajne tacke duz celog cilindra vec samo unutar osnovice - a onda se samo "kloniraju" duz ose, takodje tacke je moguce transformisati tako da drugi cilindar bude uravnat sa osama sto testiranje cini trivijalnim), tako da je uticaj na brzinu kreiranja simulacije minimalan, a preciznost mapiranja sinaptickih veza je daleko veca.


Novi Rekord

Video dole predstavlja najvecu simulaciju do sad - sa 3.5 milijardi sinapsi i 16 miliona neurona! Ukupna kolicina memorije za celu simulaciju je 350 GB. Zapravo, simulacija je samo 0.5 milijardi sinapsi od trenutnog limita DigiCortex engine-a od 4 milijardi sinapsi. Kreiranje simulacije je trajalo 2 sata na 16-core masini.

Na videu se moze videti formiranje klastera neuralne aktivnosti koji su na EEG-u (pri kraju videa) jasno desinhronizovani.



Evo kako to izgleda u resource monitoru :-)


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

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

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

Postavi temu Odgovori

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