rte_ml_op(3)

πŸ“¦ version 26.03, in nixos 26.05, nixpkgs unstable

πŸ’… rte_ml_op πŸ’…

okay so this is from the Library Functions Manual bestie, and the star of the show is literally rte_ml_op β€” the struct that makes your ML ops happen ✨


🌸 NAME 🌸

rte_ml_op β€” the ML Operation struct, and yes she's iconic πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

#include <rte_mldev.h>

✨ Data Fields ✨

uint16_t model_id
uint16_t nb_batches
uint32_t reserved
struct rte_mempool * mempool
struct rte_ml_buff_seg ** input
struct rte_ml_buff_seg ** output
enum rte_ml_op_status status
uint64_t impl_opaque

πŸ¦‹ DETAILED DESCRIPTION πŸ¦‹

So this is the ML Operation struct, and her whole job is holding all the data you need to actually perform an ML operation on your buffers, using the model you picked through model_id. that's it, that's the vibe 🫢

definition lives at line 437 of file rte_mldev.h β€” screenshot it, frame it πŸ’–

πŸ“ FIELD DOCUMENTATION πŸ“

πŸ’œ uint16_t model_id

the Model ID that gets used for the operation. which model are we running? this one. no cap πŸ’…

definition at line 438 of file rte_mldev.h.

πŸ’œ uint16_t nb_batches

Number of batches. minimum value must be one β€” like, do not come in here with zero, bestie 😭. and the input buffer has to hold the inference data for each batch as contiguous. contiguous!! that's the whole rule 🌈

definition at line 440 of file rte_mldev.h.

πŸ’œ uint32_t reserved

Reserved for future use. she's just sitting there looking pretty, holding space for the future πŸ‘‘βœ¨

definition at line 444 of file rte_mldev.h.

πŸ’œ struct rte_mempool* mempool

the Pool from which the operation gets allocated. it's giving ✨supply chain✨

definition at line 446 of file rte_mldev.h.

πŸ’œ struct rte_ml_buff_seg** input

Array of buffer segments that hold the inference input data.

okay so here's the tea 🍡 β€” the array size depends on the layout:

  • When the model supports IO layout RTE_ML_IO_LAYOUT_PACKED, size of the array is 1.
  • When the model supports IO layout RTE_ML_IO_LAYOUT_SPLIT, size of the array is rte_ml_model_info::nb_inputs.

See also: struct rte_ml_dev_info::io_layout

definition at line 448 of file rte_mldev.h.

πŸ’œ struct rte_ml_buff_seg** output

Array of buffer segments that hold the inference output data.

same energy, but on the way out πŸ¦‹:

  • When the model supports IO layout RTE_ML_IO_LAYOUT_PACKED, size of the array is 1.
  • When the model supports IO layout RTE_ML_IO_LAYOUT_SPLIT, size of the array is rte_ml_model_info::nb_outputs.

See also: struct rte_ml_dev_info::io_layout

definition at line 459 of file rte_mldev.h.

πŸ’œ uint64_t user_u64

User data as uint64_t. your data, your rules, your 64 bits πŸ”₯

definition at line 471 of file rte_mldev.h.

πŸ’œ void* user_ptr

User data as void*. same user data energy, just pointer flavored 🌟

definition at line 473 of file rte_mldev.h.

πŸ’œ enum rte_ml_op_status status

Operation status. how's she doing? check here πŸ’€

definition at line 476 of file rte_mldev.h.

πŸ’œ uint64_t impl_opaque

Implementation specific opaque value. an implementation may use this field to hold an implementation specific value to share between dequeue and enqueue operation.

⚠️ and listen β€” the application should not modify this field. hands off, bestie πŸ™ˆ it's not yours, it's the implementation's little secret. periodt.

definition at line 478 of file rte_mldev.h.


🌈 AUTHOR 🌈

Generated automatically by Doxygen for DPDK from the source code. not me writing this by hand, the robots did it πŸ€–πŸ’–


~ and that's the whole page, bestie ~ πŸŽ€ this little cutie shipped with DPDK, Version 26.03.0, and it's rte_ml_op(3) all day every day. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from