跳到主要内容

TensorPlacementUtils

函数功能

提供一组函数,判断TensorPlacement的位置。

函数原型

class TensorPlacementUtils {
public:
// 判断Tensor是否位于Device上的内存(包括HBM和P2p内存)
static bool IsOnDevice(TensorPlacement placement) {
return (placement == kOnDeviceHbm) || (placement == kOnDeviceP2p);
}
// 判断Tensor是否位于Host上
static bool IsOnHost(TensorPlacement placement) {
return (placement == kOnHost) || (placement == kFollowing);
}
// 判断Tensor是否位于Host上,且数据紧跟在结构体后面
static bool IsOnHostFollowing(TensorPlacement placement) {
return (placement == kFollowing);
}
// 判断Tensor是否位于Host上,且数据不紧跟在结构体后面
static bool IsOnHostNotFollowing(TensorPlacement placement) {
return (placement == kOnHost);
}
// 判断Tensor是否位于Device上的HBM内存
static bool IsOnDeviceHbm(TensorPlacement placement) {
return (placement == kOnDeviceHbm);
}
// 判断Tensor是否位于Device上的P2p内存
static bool IsOnDeviceP2p(TensorPlacement placement) {
return (placement == kOnDeviceP2p);
}
};

参数说明

参数输入/输出说明
placement输入需要进行判断的TensorPlacement枚举。

返回值

  • true表示是。
  • false表示不是。

约束说明

调用示例

TensorData tensor_data;
tensor_data.SetPlacement(TensorPlacement::kOnDeviceHbm);
auto on_device = TensorPlacementUtils::IsOnDevice(tensor_data.GetPlacement()); // on_device is true