How many blocks per Loihi chip?

Hello, I’m looking to be sure that a model will fit on a Loihi before I send it to the hardware. The Kapoho Bays we use either have 1 or 2 chips.

There are two limitations I am aware of that I could potentially check for:

  1. number of neurons

  2. number of synapses

  3. number of neurons I can get from the nengo_loihi nengo.network.n_neurons
    The limit is 131072 per chip

  4. the number of synapses is d1 x d2 where d1 and d2 are the dimensions of each connection transform matrix. Sum those up for each connection in the network.
    The limit is ~1,000,000 / 8 see (Trying to Understand Network Restrictions)

Any other thoughts or suggestions as to how to check a network will fit on 1 or 2 Loihi chips?

We found this which will print out the number of blocks
API reference — NengoLoihi 1.1.0.dev0 docs
But I’m not sure how to translate # blocks into # chips.

Thank you,

Michael

NengoLoihi currently always allocates one block per core. Ensembles can be distributed across one or more blocks, and thus use one or more cores (see Splitting Large Ensembles for more info).

The utilization_summary function you pointed to will give you an average at the end, and as part of this list the total number of blocks, which as I said will map directly to the number of cores. Loihi chips have 128 cores, so you would have 128 or 256 cores.

Currently, we don’t have any way to put small blocks together on the same core. This means models with many small ensembles will fill up the chip more quickly than you would otherwise expect just based on number of neurons.

Similarly, if you really want to max out your chips, you’ll want to have ensembles that can be split into groups that will max out each core. For example, an ensemble with 1025 neurons would need to be split across two cores, but would only be using about half the neurons on each, whereas an ensemble with 2048 neurons would also take two cores and be using all neurons on each. (This is assuming the ensembles don’t need to be split across more cores because they’re maxing out other resources, like axons or synapse memory.)

Thank you Eric, this is very helpful!