パラメーター/テンソル/ゼロ |
data |
const |
data |
入力データ用のメモリを割り当てます。 |
|
shape |
|
data_type |
Conv2d |
in_channels |
conv2d (groups = 1) / depthwise-conv2d (groups = input channel) |
|
groups == input channel の場合、convolution は Depthwise たたみ込みエンジンにコンパイルされます。groups == 1 の場合、convolution はたたみ込みエンジンにマップされます。それ以外の場合、CPU にマップされます。 |
out_channels |
|
kernel_size: |
kernel |
stride |
stride |
padding |
pad |
padding_mode('zeros') |
pad_mode (FLOOR) |
groups |
|
dilation |
dilation |
ConvTranspose2d |
in_channels |
transposed-conv2d (groups = 1) / depthwise-transposed-conv2d (groups = input channel) |
|
groups == input channel の場合、convolution は Depthwise たたみ込みエンジンにコンパイルされます。groups == 1 の場合、convolution はたたみ込みエンジンにマップされます。それ以外の場合、CPU にマップされます。output_padding 機能については、DPU はまだサポートされていないため、値がすべて 0 でない場合、この演算子は CPU に割り当てられます。 |
out_channels |
|
kernel_size: |
kernel |
stride |
stride |
padding |
pad |
output_padding |
output_padding |
padding_mode('zeros') |
pad_mode (FLOOR) |
groups |
|
dilation |
dilation |
matmul |
|
conv2d / matmul |
transpose_a |
matmul は conv2d に変換され、たたみ込みエンジンにコンパイルされます。matmul の変換がエラーになった場合は、CPU によってインプリメントされます。 |
|
transpose_b |
MaxPool2d/AdaptiveMaxPool2d |
kernel_size: |
maxpool2d |
kernel |
プーリング エンジン |
stride |
stride |
padding |
pad |
ceil_mode |
pad_mode |
output_size (adaptive) |
global |
AvgPool2d/AdaptiveAvgPool2d |
kernel_size: |
avgpool2d |
kernel |
プーリング エンジン |
stride |
stride |
padding |
pad |
ceil_mode |
pad_mode |
count_include_pad |
count_include_pad |
|
count_include_invalid (true) |
output_size (adaptive) |
global |
ReLU |
|
relu |
|
アクティベーションは、convolution などの隣接する動作に融合されます。 |
LeakyReLU |
negative_slope |
leakyrelu |
alpha |
ReLU6 |
|
relu6 |
|
Hardtanh |
min_val = 0 |
|
max_val = 6 |
|
Hardsigmoid |
|
hard-sigmoid |
|
Hardswish |
|
hardswish |
|
ConstantPad2d/ZeroPad2d |
padding |
pad |
paddings |
最初にコンパイラは「CONSTANT」パディングを隣接する動作 (たたみ込み、プーリングなど) に融合しようとします。このような演算子が存在しない場合でも、パディングの次元が 4 でハードウェア要件を満たしている場合、「CONSTANT」パディングを DPU にマップできます。 |
value = 0 |
constant_values |
|
mode ("CONSTANT") |
add |
|
add |
|
add が要素ごとの加算である場合、add は DPU の要素ごとの加算エンジンにマップされます。add がチャネルごとの加算である場合、add と、convolution などの隣接する動作を融合できる可能性を探します。shape に関連する動作である場合、コンパイル中に削除されます。粗粒度の動作のコンポーネントである場合、隣接する動作と融合されます。それ以外の場合、CPU インプリメンテーションにコンパイルされます。mul の入力のうち 1 つが定数である場合、mul は depthwise たたみ込みエンジンにマップできます。2 つの入力が同じ形状である場合、mul は要素ごとの乗算として Misc Engine にマップできます。その他の mul 演算が特殊な演算子の組み合わせの一部である場合、この mul はその組み合わせに融合できます。それ以外の場合、CPU にマップされます。 |
sub / rsub |
|
sub |
|
mul |
|
mul |
|
neg |
|
neg |
|
sum |
dim |
reduction_sum |
axis |
keepdim |
keep_dims |
max |
dim |
reduction_max |
axis |
keepdim |
keep_dims |
mean |
dim |
reduction_mean |
axis |
keepdim |
keep_dims |
interpolate / upsample / upsample_bilinear / upsample_nearest |
size |
resize |
size |
resize のモードが「BILINEAR」、align_corner=false、half_pixel_centers = false、size = 2、4、8 である場合、align_corner=false、half_pixel_centers = true、size = 2、4 は、DPU インプリメンテーション (pad+depthwise-転置された conv2d) に変換できます。resize のモードが「NEAREST」で size が整数である場合、resize は DPU インプリメンテーションにマップされます。 |
scale_factor |
|
mode |
mode |
align_corners |
align_corners |
|
half_pixel_centers = !align_corners |
transpose |
dim0 |
transpose |
order |
reshape 動作に変換される場合があります。さらに、次元変換動作を隣接する動作の特殊な読み込みまたは保存命令に融合してオーバーヘッドを低減できる可能性を探します。それ以外の場合、CPU にマップされます。 |
dim1 |
|
permute |
dims |
|
|
view/reshape |
size |
reshape |
shape |
flatten |
start_dim |
reshape/flatten |
start_axis |
end_dim |
end_axis |
squeeze |
dim |
reshape / squeeze |
axis |
cat |
dim |
concat |
axis |
特殊な読み出しまたは書き込みストラテジとオンチップ メモリの慎重な割り当てにより、concat の結果生じるオーバーヘッドを低減します。 |
aten::slice* |
dim |
strided_slice |
|
strided_slice が shape に関連する動作であるか、粗粒度の動作の構成要素である場合、strided_slice は削除されます。それ以外の場合、strided_slice は CPU インプリメンテーションにコンパイルされます。 |
start |
begin |
end |
end |
step |
strides |
BatchNorm2d |
eps |
depthwise-conv2d / scale |
epsilon |
batch_norm が量子化され、等価な depthwise-conv2d に変換可能である場合、batch_norm は depthwise-conv2d に変換されます。コンパイラは、batch_norm を DPU インプリメンテーションにマップするためのコンパイルができる可能性を探します。それ以外の場合、batch_norm は CPU によって実行されます。 |
|
axis |
|
moving_mean |
|
moving_var |
|
gamma |
|
beta |
softmax |
dim |
softmax |
axis |
CPU インプリメンテーションにのみコンパイルされます。 |
Tanh |
|
tanh |
|
Sigmoid |
|
sigmoid |
|
PixelShuffle |
upscale_factor |
pixel_shuffle |
scale |
たたみ込みが入力された場合、これらはタイルに変換されます。 |
|
|
|
upscale=True |
PixelUnshuffle |
downscale_factor |
pixel_shuffle |
scale |
|
|
|
upscale=False |
- PyTorch のテンソルのスライスが Python 構文で書かれている場合、
aten::slice に変換されます。
|