parent
e06c69c788
commit
172c2facef
@ -0,0 +1,234 @@
|
||||
# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# The three sets listed below are changed dynamiclly. They don't contain all
|
||||
# paddle ops currently.
|
||||
|
||||
# The set of ops that support fp16 calculation and are considered numerically-
|
||||
# safe and performance-critical. These ops are always converted to fp16.
|
||||
white_list = {
|
||||
'conv2d',
|
||||
'matmul',
|
||||
'mul',
|
||||
}
|
||||
|
||||
# The set of ops that support fp16 calculation and are considered numerically-
|
||||
# dangerous and whose effects may also be observed in downstream ops.
|
||||
black_list = {
|
||||
'exp',
|
||||
'square',
|
||||
'log',
|
||||
'mean',
|
||||
'sum',
|
||||
'cos_sim',
|
||||
'softmax',
|
||||
'softmax_with_cross_entropy',
|
||||
'sigmoid_cross_entropy_with_logits',
|
||||
'cross_entropy',
|
||||
'cross_entropy2',
|
||||
}
|
||||
|
||||
# This set contains two types of ops. All ops supported fp16 calculation. One
|
||||
# of two types is considered numerically-safe, but may be made unsafe by an
|
||||
# updtream blacklist op. Another type do not have numerically-significant
|
||||
# effects, like stack, flatten2.
|
||||
gray_list = {
|
||||
'elementwise_add',
|
||||
'elementwise_sub',
|
||||
'elementwise_mul',
|
||||
'elementwise_div',
|
||||
'elementwise_max',
|
||||
'elementwise_min',
|
||||
'elementwise_pow',
|
||||
'elementwise_mod',
|
||||
'elementwise_floordiv',
|
||||
'tanh',
|
||||
'sigmoid',
|
||||
'lookup_table',
|
||||
'top_k',
|
||||
'pool2d',
|
||||
'pool3d',
|
||||
'dropout',
|
||||
'relu',
|
||||
'relu6',
|
||||
'leaky_relu',
|
||||
'soft_relu',
|
||||
'flatten2',
|
||||
'stack',
|
||||
'unstack',
|
||||
'uniform_random_batch_size_like',
|
||||
'gaussian_random',
|
||||
'gaussian_random_batch_size_like',
|
||||
'slice',
|
||||
'rank',
|
||||
'scale',
|
||||
'transpose2',
|
||||
'reshape2',
|
||||
'gather',
|
||||
'fill_constant',
|
||||
'get_tensor_from_selected_rows',
|
||||
'sign',
|
||||
'cast',
|
||||
}
|
||||
'''
|
||||
# The set of ops that don't support fp16 calculation
|
||||
unsupported_fp16_list = {
|
||||
# from python/paddle/fluid/layers/io.py
|
||||
'send',
|
||||
'send_barrier',
|
||||
'recv',
|
||||
'fetch_barrier',
|
||||
'create_recordio_file_reader',
|
||||
'create_random_data_generator',
|
||||
'create_py_reader',
|
||||
'create_shuffle_reader',
|
||||
'create_batch_reader',
|
||||
'create_double_buffer_reader',
|
||||
'create_multi_pass_reader',
|
||||
'read',
|
||||
'load',
|
||||
|
||||
# from python/paddle/fluid/control_flow.py
|
||||
'increment',
|
||||
'less_than',
|
||||
'less_equal',
|
||||
'greater_than',
|
||||
'greater_equal',
|
||||
'equal',
|
||||
'not_equal',
|
||||
'read_from_array',
|
||||
'shrink_rnn_memory',
|
||||
'lod_array_length',
|
||||
'logical_and',
|
||||
'logical_or',
|
||||
'logical_xor',
|
||||
'logical_not',
|
||||
'print',
|
||||
'conditional_block',
|
||||
'while',
|
||||
'ifelse',
|
||||
'is_empty',
|
||||
|
||||
'lstm',
|
||||
'cudnn_lstm',
|
||||
'lstmp',
|
||||
'gru',
|
||||
'gru_unit',
|
||||
'linear_chain_crf',
|
||||
'crf_decoding',
|
||||
'bpr_loss',
|
||||
'chunk_eval',
|
||||
'sequence_conv',
|
||||
'sequence_softmax',
|
||||
# Depthwise conv2d isn't fast and safe currently.
|
||||
# ref: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/grappler/optimizers/auto_mixed_precision_lists.h#L79
|
||||
'depthwise_conv2d',
|
||||
# Tensor Core kernels are not available for 3D convolutions currently.
|
||||
'conv3d',
|
||||
'sequence_pool',
|
||||
'sequence_concat',
|
||||
'sequence_slice',
|
||||
'data_norm',
|
||||
'layer_norm',
|
||||
'group_norm',
|
||||
'spectral_norm',
|
||||
'depthwise_conv2d_transpose',
|
||||
'sequence_expand',
|
||||
'conv_transposed2d',
|
||||
'conv_transposed3d',
|
||||
'sequence_expand_as',
|
||||
'sequence_pad',
|
||||
'sequence_unpad',
|
||||
'sequence_erase',
|
||||
'beam_search',
|
||||
'beam_search_decode',
|
||||
'lstm_unit',
|
||||
'reduce_sum',
|
||||
'reduce_mean',
|
||||
'reduce_max',
|
||||
'reduce_min',
|
||||
'reduce_prod',
|
||||
'reduce_all',
|
||||
'reduce_any',
|
||||
'split',
|
||||
'edit_distance',
|
||||
'ctc_align',
|
||||
'warpctc',
|
||||
'sequence_reshape',
|
||||
'nce',
|
||||
'hierarchical_sigmoid',
|
||||
'im2sequence',
|
||||
'row_conv',
|
||||
'multiplex',
|
||||
'sample_logits',
|
||||
'one_hot',
|
||||
'smooth_l1_loss',
|
||||
'squeeze2',
|
||||
'unsqueeze2',
|
||||
'lod_reset',
|
||||
'lrn',
|
||||
'pad',
|
||||
'pad_constant_like',
|
||||
'label_smooth',
|
||||
'scatter',
|
||||
'sequence_scatter',
|
||||
'random_crop',
|
||||
'mean_iou',
|
||||
'selu',
|
||||
'crop',
|
||||
'affine_grid',
|
||||
'rank_loss',
|
||||
'margin_rank_loss',
|
||||
'pad2d',
|
||||
'elu',
|
||||
'pow',
|
||||
'stanh',
|
||||
'hard_sigmoid',
|
||||
'swish',
|
||||
'prelu',
|
||||
'brelu',
|
||||
'sequence_enumerate',
|
||||
'sequence_mask',
|
||||
'expand',
|
||||
'sampling_id',
|
||||
'maxout',
|
||||
'space_to_depth',
|
||||
'sequence_reverse',
|
||||
'similarity_focus',
|
||||
'hash',
|
||||
'grid_sampler',
|
||||
'log_loss',
|
||||
'teacher_student_sigmoid_loss',
|
||||
'add_position_encoding',
|
||||
'bilinear_tensor_product',
|
||||
'shuffle_channel',
|
||||
'temporal_shift',
|
||||
'psroi_pool',
|
||||
'huber_loss',
|
||||
'kldiv_loss',
|
||||
'tree_conv',
|
||||
'pixel_shuffle',
|
||||
'fsp',
|
||||
'cvm',
|
||||
|
||||
'affine_channel',
|
||||
'roi_pool',
|
||||
'roi_align',
|
||||
'anchor_generator',
|
||||
'generate_proposals',
|
||||
'generate_proposal_labels',
|
||||
'generate_mask_labels',
|
||||
|
||||
}
|
||||
'''
|
Loading…
Reference in new issue