nest / nest-gpu

NEST GPU
https://nest-gpu.readthedocs.io
GNU General Public License v2.0
19 stars 12 forks source link

Implement possibility to choose number of bytes for each connection and number of bits for their integer parameters #89

Open golosio opened 1 year ago

golosio commented 1 year ago

Implement possibility to choose between at least two possibilities for the number of bytes used for each connection (excluding structures for non-static connections): either 12 bytes or 16 bytes per connection. Implement possibility to choose number of bits for node indexes, receptor ports, synaptic type, delay, wth SetKernelStatus command. In the 12 bytes solution, source node index and delay are compressed in 4 bytes, target node index, receptor port and synaptic group are compressed in other 4 bytes, weight is a 32 bit (4 bytes) floating point number. In the 16 bytes solution, source node index is a 4 byte integer, delay and receptor port (or synaptic group) are compressed in 4 bytes, target node index and synaptic group (or receptor port) are compressed in 4 bytes, weight is a 32 bit (4 bytes) floating point number. In any case, connection related functions use templates, which should compress/extract the parameters in a proper way depending on the selected representation. Implement possibility to remove the source node index (together with the delay for the 12-bytes solution) in the calibration method after the connections are properly organized, in order to recover some GPU memory to be used for other structures. Note that if source node index (and eventually delay) are removed, it will not be possible to get the connection statuses after calibration.