torch.cpu 的源代码
# mypy: 允许未类型化定义
r""
此包实现了在`torch.cuda`中找到的抽象
以便于编写设备无关的代码。
""
from contextlib import 抽象上下文管理器
from 打字 import
任何,
可选,
联合
import 火炬
from .. import 设备
作为
_设备
from . import 自动混合精度
全部 = [
"是否可用",
"同步",
"当前设备",
"当前流",
流,
设置设备,
设备数量,
流,
"沉浸式上下文",
"事件",
]
_设备_t =
联盟[
_设备, str, int,
无]
定义 _is_avx2_supported() -> bool:
r返回一个布尔值,表示 CPU 是否支持 AVX2。
返回
PyTorch._C._cpu._is_avx2_supported()
定义 _is_avx512_supported() -> bool:
r返回一个布尔值,表示 CPU 是否支持 AVX512。
返回
PyTorch._C._cpu._is_avx512_supported()
定义 _is_avx512_bf16_supported() -> bool:
r返回一个布尔值,表示 CPU 是否支持 AVX512_BF16。
返回
PyTorch._C._cpu._is_avx512_bf16_supported()
定义
支持 VNNI 吗() -> bool:
r返回一个布尔值,表示 CPU 是否支持 VNNI。
# 注意:目前只检查 avx512_vnni,稍后将添加对 avx2_vnni 的支持。
返回
PyTorch._C._cpu._is_avx512_vnni_supported()
定义 _is_amx_tile_supported() -> bool:
r"""返回一个布尔值,表示 CPU 是否支持 AMX_TILE。"""
返回
PyTorch._C._cpu.
支持 AMX 瓦片吗()
定义
支持 AMX FP16 吗() -> bool:
r返回一个布尔值,表示 CPU 是否支持 AMX FP16。
返回
PyTorch._C._cpu.
支持 AMX FP16 吗()
定义
初始化 AMX() -> bool:
r初始化 AMX 指令。
返回
PyTorch._C.
CPU._init_amx()
[文档]def is_available() -> bool:
r"""返回一个布尔值,表示 CPU 当前是否可用。
注意:此函数仅用于方便编写设备无关的代码
"""
返回 True
[文档]def 同步(device: _device_t = None) -> None:
r"""等待 CPU 设备上所有流中的所有内核完成。
Args:
设备(torch.device 或 int,可选):忽略,只有一个 CPU 设备。
注意:此函数仅存在以方便设备无关的代码。
"""
[文档]class Stream:
"""
注意。此类仅存在以方便设备无关的代码
"""
def __init__(self, priority: int = -1) -> None:
pass
def wait_stream(self, stream) -> None:
pass
def record_event(self) -> None:
pass
def wait_event(self, event) -> None:
pass
类
活动:
定义
查询(
我) -> bool:
返回
真的
定义
记录(
我,
流=
无) ->
无:
通过
定义
同步(
我) ->
无:
通过
定义
等待(
我,
流=
无) ->
无:
通过
_默认 CPU 流 =
流()
_current_stream = _default_cpu_stream
[文档]def current_stream(device: _device_t = None) -> Stream:
r"""返回给定设备的当前选定的 :class:`Stream`。
Args:
设备(torch.device 或 int,可选):忽略。
注意:此函数仅存在以方便设备无关的代码
"""
返回当前流
[文档]类 StreamContext(AbstractContextManager):
r"""上下文管理器,用于选择指定的流。
注意:此类仅用于简化设备无关的代码
"""
"""
cur_stream: 可选[流]
def __init__(self, stream):
self.stream = stream
self.prev_stream = _default_cpu_stream
def __enter__(self):
cur_stream = self.stream
if cur_stream is None:
返回
全局_current_stream
self.prev_stream = _current_stream
_current_stream = cur_stream
def __exit__(self, type: Any, value: Any, traceback: Any) -> None:
cur_stream = self.stream
if cur_stream is None:
return
全局_current_stream
_current_stream = self.prev_stream
[文档]def stream(stream: Stream) -> AbstractContextManager:
r"""Context-manager StreamContext 的包装器
选择一个给定的流。
注意。此函数仅存在以方便设备无关的代码。
"""
返回 StreamContext(stream)
[文档]def device_count() -> int:
返回 CPU 设备数量(非核心数)。始终为 1。
注意。此函数仅存在以方便设备无关的代码
"""
返回 1
[文档]def set_device(device: _device_t) -> None:
r"""设置当前设备,在 CPU 中我们不执行任何操作。
注意:此函数仅用于方便编写与设备无关的代码
"""
[文档]def current_device() -> str:
r"""返回当前设备用于 cpu。总是'cpu'。
注意。此函数仅存在以方便设备无关的代码
"""
"""
return "cpu"