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