pytorch  1.8.2
About: PyTorch provides Tensor computation (like NumPy) with strong GPU acceleration and Deep Neural Networks (in Python) built on a tape-based autograd system. LTS (Long Term Support) release.
  Fossies Dox: pytorch-1.8.2.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

cpuid.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5#ifdef _MSC_VER
6#include <intrin.h>
7#endif
8
10
11namespace caffe2 {
12
13class CpuId;
14
15TORCH_API const CpuId& GetCpuId();
16
17///////////////////////////////////////////////////////////////////////////////
18// Implementation of CpuId that is borrowed from folly.
19///////////////////////////////////////////////////////////////////////////////
20
21// TODO: It might be good to use cpuinfo third-party dependency instead for
22// consistency sake.
23
24/**
25 * Identification of an Intel CPU.
26 * Supports CPUID feature flags (EAX=1) and extended features (EAX=7, ECX=0).
27 * Values from
28 * http://www.intel.com/content/www/us/en/processors/processor-identification-cpuid-instruction-note.html
29 */
30class CpuId {
31 public:
32 CpuId();
33
34#define X(name, r, bit) \
35 inline bool name() const { \
36 return ((r) & (1U << bit)) != 0; \
37 }
38
39// cpuid(1): Processor Info and Feature Bits.
40#define C(name, bit) X(name, f1c_, bit)
41 C(sse3, 0)
45 C(dscpl, 4)
46 C(vmx, 5)
47 C(smx, 6)
48 C(eist, 7)
49 C(tm2, 8)
50 C(ssse3, 9)
51 C(cnxtid, 10)
52 C(fma, 12)
53 C(cx16, 13)
54 C(xtpr, 14)
55 C(pdcm, 15)
56 C(pcid, 17)
57 C(dca, 18)
58 C(sse41, 19)
59 C(sse42, 20)
60 C(x2apic, 21)
61 C(movbe, 22)
62 C(popcnt, 23)
64 C(aes, 25)
65 C(xsave, 26)
67 C(avx, 28)
68 C(f16c, 29)
69 C(rdrand, 30)
70#undef C
71
72#define D(name, bit) X(name, f1d_, bit)
73 D(fpu, 0)
74 D(vme, 1)
75 D(de, 2)
76 D(pse, 3)
77 D(tsc, 4)
78 D(msr, 5)
79 D(pae, 6)
80 D(mce, 7)
81 D(cx8, 8)
82 D(apic, 9)
83 D(sep, 11)
84 D(mtrr, 12)
85 D(pge, 13)
86 D(mca, 14)
87 D(cmov, 15)
88 D(pat, 16)
89 D(pse36, 17)
90 D(psn, 18)
91 D(clfsh, 19)
92 D(ds, 21)
93 D(acpi, 22)
94 D(mmx, 23)
95 D(fxsr, 24)
96 D(sse, 25)
97 D(sse2, 26)
98 D(ss, 27)
99 D(htt, 28)
100 D(tm, 29)
101 D(pbe, 31)
102#undef D
103
104// cpuid(7): Extended Features.
105#define B(name, bit) X(name, f7b_, bit)
106 B(bmi1, 3)
107 B(hle, 4)
108 B(avx2, 5)
109 B(smep, 7)
110 B(bmi2, 8)
111 B(erms, 9)
113 B(rtm, 11)
114 B(mpx, 14)
118 B(adx, 19)
119 B(smap, 20)
123 B(clwb, 24)
127 B(sha, 29)
130#undef B
131
132#define E(name, bit) X(name, f7c_, bit)
135#undef E
136
137#undef X
138
139 private:
140 TORCH_API static uint32_t f1c_;
141 TORCH_API static uint32_t f1d_;
142 TORCH_API static uint32_t f7b_;
143 TORCH_API static uint32_t f7c_;
144};
145
146} // namespace caffe2
#define TORCH_API
Definition: Export.h:98
Identification of an Intel CPU.
Definition: cpuid.h:30
bool ss() const
Definition: cpuid.h:98
bool ds() const
Definition: cpuid.h:92
bool fxsr() const
Definition: cpuid.h:95
bool dtes64() const
Definition: cpuid.h:43
bool fma() const
Definition: cpuid.h:52
bool acpi() const
Definition: cpuid.h:93
bool mmx() const
Definition: cpuid.h:94
bool dca() const
Definition: cpuid.h:57
bool clwb() const
Definition: cpuid.h:123
bool osxsave() const
Definition: cpuid.h:66
bool tm2() const
Definition: cpuid.h:49
bool movbe() const
Definition: cpuid.h:61
bool cnxtid() const
Definition: cpuid.h:51
bool popcnt() const
Definition: cpuid.h:62
bool smep() const
Definition: cpuid.h:109
bool clflushopt() const
Definition: cpuid.h:122
bool bmi2() const
Definition: cpuid.h:110
bool pse36() const
Definition: cpuid.h:89
bool monitor() const
Definition: cpuid.h:44
bool avx512er() const
Definition: cpuid.h:125
bool cx16() const
Definition: cpuid.h:53
bool htt() const
Definition: cpuid.h:99
bool avx512bw() const
Definition: cpuid.h:128
bool de() const
Definition: cpuid.h:75
bool pbe() const
Definition: cpuid.h:101
bool rtm() const
Definition: cpuid.h:113
bool invpcid() const
Definition: cpuid.h:112
bool avx512f() const
Definition: cpuid.h:115
bool avx512vbmi() const
Definition: cpuid.h:134
bool pae() const
Definition: cpuid.h:79
bool bmi1() const
Definition: cpuid.h:106
bool avx512ifma() const
Definition: cpuid.h:120
bool pclmuldq() const
Definition: cpuid.h:42
bool tsc() const
Definition: cpuid.h:77
bool f16c() const
Definition: cpuid.h:68
bool fpu() const
Definition: cpuid.h:73
bool smx() const
Definition: cpuid.h:47
bool prefetchwt1() const
Definition: cpuid.h:133
bool pdcm() const
Definition: cpuid.h:55
bool mtrr() const
Definition: cpuid.h:84
bool msr() const
Definition: cpuid.h:78
bool pse() const
Definition: cpuid.h:76
bool xtpr() const
Definition: cpuid.h:54
bool sse42() const
Definition: cpuid.h:59
bool pcid() const
Definition: cpuid.h:56
bool adx() const
Definition: cpuid.h:118
bool sha() const
Definition: cpuid.h:127
bool mce() const
Definition: cpuid.h:80
static TORCH_API uint32_t f7c_
Definition: cpuid.h:143
bool sep() const
Definition: cpuid.h:83
bool mpx() const
Definition: cpuid.h:114
bool clfsh() const
Definition: cpuid.h:91
bool rdrand() const
Definition: cpuid.h:69
bool cx8() const
Definition: cpuid.h:81
bool sse3() const
Definition: cpuid.h:41
static TORCH_API uint32_t f1d_
Definition: cpuid.h:141
bool vmx() const
Definition: cpuid.h:46
bool sse41() const
Definition: cpuid.h:58
bool eist() const
Definition: cpuid.h:48
bool cmov() const
Definition: cpuid.h:87
bool ssse3() const
Definition: cpuid.h:50
bool sse2() const
Definition: cpuid.h:97
bool x2apic() const
Definition: cpuid.h:60
static TORCH_API uint32_t f1c_
Definition: cpuid.h:140
bool sse() const
Definition: cpuid.h:96
bool psn() const
Definition: cpuid.h:90
bool xsave() const
Definition: cpuid.h:65
bool pge() const
Definition: cpuid.h:85
bool rdseed() const
Definition: cpuid.h:117
bool pcommit() const
Definition: cpuid.h:121
bool avx512cd() const
Definition: cpuid.h:126
bool avx() const
Definition: cpuid.h:67
bool vme() const
Definition: cpuid.h:74
bool avx512pf() const
Definition: cpuid.h:124
static TORCH_API uint32_t f7b_
Definition: cpuid.h:142
bool tscdeadline() const
Definition: cpuid.h:63
bool avx512vl() const
Definition: cpuid.h:129
bool avx512dq() const
Definition: cpuid.h:116
bool dscpl() const
Definition: cpuid.h:45
bool pat() const
Definition: cpuid.h:88
bool hle() const
Definition: cpuid.h:107
bool mca() const
Definition: cpuid.h:86
bool smap() const
Definition: cpuid.h:119
bool avx2() const
Definition: cpuid.h:108
bool erms() const
Definition: cpuid.h:111
bool apic() const
Definition: cpuid.h:82
bool tm() const
Definition: cpuid.h:100
bool aes() const
Definition: cpuid.h:64
#define E(name, bit)
Definition: cpuid.h:132
#define D(name, bit)
Definition: cpuid.h:72
Copyright (c) 2016-present, Facebook, Inc.
Definition: blob.h:13
int C
Definition: im2col_op.cc:52
const CpuId & GetCpuId()
Definition: cpuid.cc:5