开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

kupl_malloc

使用特定分配策略分配内存,并尽可能地锁住申请的内存。

接口定义

void* kupl_malloc(kupl_mem_kind_t kind, size_t size);

参数

表1 参数定义

参数名

类型

描述

输入/输出

kind

kupl_mem_kind_t

需要使用的内存分配策略

输入

size

size_t

需要申请的内存大小

输入

表2 kupl_mem_kind_t的枚举数据结构定义

枚举值

描述

KUPL_MEM_DEFAULT

使用系统默认的分配策略分配内存

KUPL_MEM_LARGE_CAP

从最近的高容量内存节点上申请内存,如果分配失败,则分配返回nullptr并报错

KUPL_MEM_HIGH_BW

从最近的高带宽内存节点上申请内存,如果分配失败,则分配返回nullptr并报错

返回值

  • 成功:返回申请得到的内存的指针
  • 失败:返回nullptr

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h> 
#include <stdlib.h>
#include "kupl.h" 

int main() 
{ 
    int len = 1024; 
    char *data = (char *)kupl_malloc(KUPL_MEM_DEFAULT, len);
    if (data == nullptr) {
        return 0;
    }
    kupl_free(KUPL_MEM_DEFAULT, data); 
    return 0; 
}
  • 上述示例演示了申请锁住的内存并释放该内存的流程。
  • 上述kupl_malloc函数申请大小为len的内存空间并尽可能锁住,使用的内存分配策略为系统默认的分配策略。
  • kupl_malloc函数会在条件允许的情况下锁住申请的内存;其中环境中包含SDMA设备是锁住申请的内存的必要条件。