在NVIDIA(CUDA,CUBLAS)和Intel MKL上快速实现BERT推理
直接在NVIDIA(CUDA,CUBLAS)或Intel MKL上进行高度定制和优化的BERT推理,而无需tensorflow及其框架开销。
仅支持BERT(转换器)。
基准测试
环境
• Tesla P4
• 28 * Intel® Xeon® CPU E5-2680 v4 @ 2.40GHz
• Debian GNU/Linux 8 (jessie)
• gcc (Debian 4.9.2-10+deb8u1) 4.9.2
• CUDA: release 9.0, V9.0.176
• MKL: 2019.0.1.20181227
• tensorflow: 1.12.0
• BERT: seq_length = 32
注意:应该在下面运行MKLOMP_NUM_THREADS=?来控制其线程号。其他环境变量及其可能的值包括:
• KMP_BLOCKTIME=0
• KMP_AFFINITY=granularity=fine,verbose,compact,1,0
混合精度
NVIDIA Volta和Turing GPU上的Tensor Core 和Mixed Precision可以加速cuBERT 。支持混合精度作为存储在fp16中的变量,并在fp32中进行计算。与单精度推理相比,典型的精度误差小于1%,而速度则达到了2倍以上的加速度。
API
API .h标头