rte_ml_op(3)
π 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 is1. - When the model supports IO layout
RTE_ML_IO_LAYOUT_SPLIT, size of the array isrte_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 is1. - When the model supports IO layout
RTE_ML_IO_LAYOUT_SPLIT, size of the array isrte_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
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms