Lower number of cores on HERO
#1
Hello,

I was wondering how to decrease the number of cores in a cluster. I have found where to do it for the hardware (bigpulp/fe/rtl/includes/pulp_soc_defines.sv) but I'm not sure if that is all that is needed to be done or should there be something changed elsewhere?
Is there anything that needs to be changed in the HERO SDK?

Thanks,
Luka
Reply
#2
Hi lukamac,

For the hardware that is all, but you also need to change the `nb_pe` parameter in the configuration of the PULP SDK (https://github.com/pulp-platform/pulp-co...5.json#L21) and then rebuild the SDK.

Best,
Andreas
Reply
#3
Hi Andreas,

Thank you for your reply.
The file that you linked is not on the same path in my pulp-sdk. I want to point out that the pulp-sdk, that HERO-SDK clones, is at commit 82ce680 and pulp-configs at commit 43e58d2.
So what I have at that path is:

~/hero-sdk/pulp-sdk/pulp-configs/configs/chips/hero-z-7045$ ls
apb_soc.json  chip.json  cluster_0.json  defaults.json  soc.json  system.json

I found in the cluster_0.json the same parameter ("nb_pe") but just wanted to make sure is that the right place to change it since I also found the hero-z-7045.json file at several other places:

~/hero-sdk/pulp-sdk$ find -name *hero-z-7045.json*
./pkg/sdk/dev/configs/json/hero-z-7045.json
./pkg/sdk/dev/install/ws/configs/hero-z-7045.json
./pkg/sdk/dev/install/ws/configs/systems/hero-z-7045.json
./pkg/sdk/dev/install/ws/configs/templates/chips/hero-z-7045/hero-z-7045.json
./configs/json/hero-z-7045.json
./build/sdk/pulp-configs/configs/hero-z-7045.json
./build/sdk/pulp-configs/configs/systems/hero-z-7045.json
./build/sdk/pulp-configs/configs/templates/chips/hero-z-7045/hero-z-7045.json
./pulp-configs/configs/hero-z-7045.json
./pulp-configs/configs/systems/hero-z-7045.json
./pulp-configs/configs/templates/chips/hero-z-7045/hero-z-7045.json
Reply
#4
Hi Andreas,

I have tried your suggestion and it worked partially.
When running the helloworld example the host (ARM) gets stuck in function pulp_mbox_read.
Here is the gdb backtrace:
Code:
#0  0xb6e23b94 in ?? () from /lib/libc.so.6
No symbol table info available.
#1  0xb6e95002 in read () from /lib/libc.so.6
No symbol table info available.
#2  0xb6dad3d0 in pulp_mbox_read (pulp=0xb6bfd0f8 <pulp_dev>, buffer=buffer@entry=0xbecaab50, n_words=n_words@entry=2)
   at src/pulp.c:70
       n_char = 0
       n_char_left = 8
       ret = <optimized out>
#3  0xb6beb9b4 in GOMP_OFFLOAD_run (n=<optimized out>, tgt_fn=0x1c0009b8, tgt_vars=<optimized out>,
   args=<optimized out>)
   at /home/hero/testing_2cores/hero-sdk/hero-gcc-toolchain/src/riscv-gcc/libgomp/plugin/plugin-pulp-hero.h:449
       ret = {3200953216, 1}
#4  0xb6f11874 in GOMP_target_ext (device=device@entry=-1, fn=fn@entry=0x10829 <main._omp_fn.1>, mapnum=mapnum@entry=0,
   hostaddrs=hostaddrs@entry=0x0, sizes=<optimized out>, sizes@entry=0x0, kinds=<optimized out>, kinds@entry=0x0,
   flags=<optimized out>, flags@entry=0, depend=<optimized out>, depend@entry=0x0, args=<optimized out>,
   args@entry=0xbecaabe0) at /home/hero/testing_2cores/hero-sdk/hero-gcc-toolchain/src/riscv-gcc/libgomp/target.c:1576
       devicep = <optimized out>
       tgt_align = <optimized out>
       tgt_size = <optimized out>
       fpc_done = <optimized out>
       tgt_vars = 0x2d9b0
#5  0x00010726 in main (argc=<optimized out>, argv=<optimized out>) at helloworld.c:41
No locals.

What could be the problem? Could you please help?
Reply


Forum Jump: