C++ 算子后端自动化适配:利用 C++ 模板元编程实现对不同硬件厂商(NVIDIA/AMD/Intel)算子库的统一路由 各位好,我是你们的 C++ 服务器端架构师兼深度学习框架维护者。 今天我们不聊虚的,我们聊点“痛”的。痛在何处?痛在当你试图让你的深度学习模型在 NVIDIA 显卡上跑得飞起,在 AMD 显卡上也能跑,甚至还想在 Intel 的 CPU 上跑的时候,你的代码库变成了一团乱麻。 想象一下,你是一个大厨(程序员)。你的菜单(算子库)里有一道菜叫“矩阵乘法”(GEMM)。NVIDIA 厨师擅长用 CUDA 火炒,AMD 厨师擅长用 HIP 爆炒,Intel 厨师擅长用 OpenCL 煎。如果每次点菜,你都得问服务员:“哎,请问这位客人是用 NVIDIA 还是 AMD 的锅做的?” 如果服务员每次都要问,那这个餐厅(代码)就太慢了,而且容易出错。最好的情况是,客人在点菜前就把自己的锅(硬件类型)报备了,服务员直接把菜端给对应的厨师。这就是我们今天要讲的主题:利用 C++ 模板元编程(TMP)实现的自动化后端适配。 别被“模板元编程”这四个字吓到了,这听起来很高大上,其实它 …
继续阅读“C++ 算子后端自动化适配:利用 C++ 模板元编程实现对不同硬件厂商(NVIDIA/AMD/Intel)算子库的统一路由”