hl_init_pb(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… hl_init_pb(9) β€” like, the Kernel API Manual page, but make it make sense πŸŽ€

okay so. bestie. gather round. this is hl_init_pb from the Kernel API Manual, and it is literally the function that sets up pb in the HW according to whatever configuration you hand it. that's the whole vibe. no cap. πŸ’–


✨ NAME ✨

hl_init_pb β€” set pb in HW according to given configuration 🫢


🌸 SYNOPSIS 🌸

int hl_init_pb (struct hl_device *hdev , u32 num_dcores , u32
dcore_offset , u32 num_instances , u32 instance_offset , const u32
pb_blocks[] , u32 blocks_array_size , const u32 *user_regs_array , u32
user_regs_array_size );

it's giving "lots of arguments" energy and honestly? iconic of it. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • hdev β€” pointer to hl_device structure. that's your device, your main character, the whole reason we're here πŸ‘‘
  • num_dcores β€” number of decores to apply configuration to. and listen β€” set this to HL_PB_SHARED if you need it applied only once. lowkey important, don't skip that part ✨
  • dcore_offset β€” offset between dcores. yes bestie, the spacing between them πŸŽ€
  • num_instances β€” number of instances to apply configuration to 🌸
  • instance_offset β€” offset between instances. again with the spacing, it's a theme πŸ’œ
  • pb_blocks β€” blocks array πŸ“š
  • blocks_array_size β€” blocks array size. it's the size. of the blocks array. fr fr 🫢
  • user_regs_array β€” unsecured register array πŸ”“
  • user_regs_array_size β€” unsecured register array size. matching size for the matching array, we love consistency 😭

🧚 SEE ALSO 🧚

kernel file ./drivers/accel/habanalabs/common/security.c β€” go read the source, iykyk πŸ’–

and the whole friend group, all linked up:

like, that's the entire squad. go say hi. 🌈


okay that's the page!! this was brought to you by ./drivers/accel/habanalabs/common, dated October 2026. mwah. slay. periodt. πŸ’…βœ¨πŸ“
πŸ“¦ where this page comes from