Tencent / TurboTransformers

a fast and user-friendly runtime for transformer inference (Bert, Albert, GPT2, Decoders, etc) on CPU and GPU.
Other
1.49k stars 198 forks source link

TurboTransformer的C++API所需的头文件 #236

Closed QSZL-SZ closed 3 years ago

QSZL-SZ commented 3 years ago

你好,最近在学习TurboTransformer的C++API使用。看example源码的时候有两个疑问请问能解答一下吗?谢谢

1.在example中bert_model_example.cpp中没有引用到bert_attention.h等layer头文件,是有了预训练好的模型不需要使用这些吗?这些什么情况下会被引用呢?

2.在example中bert_model.h引用的dlpack是起到什么作用呢,可以取代吗?

feifeibear commented 3 years ago
  1. TurboTransformers/example/cpp/bert_model.cpp 这个文件里不是引用了bert_attention.h么。这里用了C++ PIMPL设计模式,所以你在.h里找不到
  2. dlpack可是实现pytorch tensor到turbo定义tensor的格式转换,你的项目要是不想兼容pytorch就可以去掉
QSZL-SZ commented 3 years ago

明白了,非常感谢

QSZL-SZ commented 3 years ago

你好,运行benchmark中的run_cpu_variable_benchmark.sh生成了一个结果文件turbo_4_bert_latency.txt。内容类似于 5, 0.40938372500022524 12, 0.6920654239984287 21, 0.8890609740010404 25, 0.9953238239977509 请问这个结果的含义是什么呢? 然后这个脚本是基于python的turbotranformer测试,请问有基于C++的benchmark测试吗?因为想做一下C++turbo的量化比较一下精度差异

feifeibear commented 3 years ago

序列长度,延迟 没有C++的benchmark结果,应该和python的差不多,或者快一点。