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.
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.