【发布时间】:2018-01-23 10:41:02
【问题描述】:
使用 SYCL 在任何 OpenCL 设备上运行代码不需要自定义编译器,因为一切都在库中完成(充满了模板魔法),标准的 GCC/Clang 就可以了。它是否正确? (特别是在我正在使用的 triSYCL 的情况下......)
如果是这样...我知道可以通过在自定义“句柄”或“包装器”类上重载一组运算符来提取简单的表达式树,但控制流并非如此。我错了吗?
this paper 的第 3.1 节讨论了向 C++ 添加 EDSL 的几种不同方法的优缺点,但我对 SYCL 使用的方法的实际技术实现更感兴趣。
我尝试在一些与 SYCL 相关的项目(Eigen、TensorFlow、triSYCL、ComputeCpp 等)中查看源代码,但到目前为止我无法在其中找到答案。
那么:SYCL 库(?)如何在不需要自定义/扩展编译器的情况下发现内核的完整控制流图(以普通 C++ lambda 形式给出)?
【问题讨论】: