register_cache
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
x |
√ |
|
√ |
|
x |
|
x |
|
x |
说明:针对
函数功能
非PagedAttention场景下,调用此接口注册一个自行申请的内存。
函数原型
1 | register_cache(cache_desc: CacheDesc, addrs: List[int], cache_keys: Union[Tuple[CacheKey], List[CacheKey]] = (), remote_accessible: Optional[bool] = None) -> Cache: |
参数说明
参数名称 |
数据类型 |
取值说明 |
|---|---|---|
cache_desc |
Cache的描述信息。 |
|
addrs |
List[int] |
Cache的地址。register_cache中的地址个数与register_blocks_cache的地址个数之和不超过240。 |
cache_keys |
Cache的索引。 |
|
remote_accessible |
Optional[bool] |
指定当前注册内存是否能用来做网络传输,对于Device内存,默认值是True,对于Host内存,默认值是False。 |
返回值
正常情况下返回注册的cache。
传入数据类型错误,src和dst不匹配情况下会抛出TypeError或ValueError异常。
传入参数为None,会抛出AttributeError异常。
约束说明
Device内存需要先注册再进行建链,Host内存不约束顺序。
注册内存地址需自行保证不重复。
最大注册50GB的Device内存,20GB的Host内存。注册内存越大,占用的OS内存越多。该约束支持的芯片如下:
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品
D2D HCCS数据传输时,首地址需要按照2MB对齐,否则可能导致link失败,HCCS不支持Host内存。该约束支持的芯片如下:
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品
RDMA数据传输时,申请Host内存必须通过aclrtMallocHost接口,否则可能导致link失败。该约束支持的芯片如下:
Atlas A2 训练系列产品 /Atlas A2 推理系列产品 Atlas A3 训练系列产品 /Atlas A3 推理系列产品