我正在编写 mex 代码和 cuda 代码。我想知道每个代码有两个目标文件并从 mex 文件中调用 cuda 内核,因为我通过组合它们的目标文件来获得可执行文件。因此我需要知道(如果可能的话)我如何从另一个目标文件中调用一个目标文件的函数。它是否可以使用单独的编译器编译 mex 和 cuda 并以这种方式组合它们?
问问题
152 次
1 回答
1
这是完全可能的。前段时间我玩过这个。当前支持的方法使用 MATLAB 并行计算工具箱。此处有执行此操作的说明。
稍微扩展一下,已编译的 mex 文件实际上只是带有已编译的 mex 网关的动态库。只要您拥有网关,适当地链接您的文件,并为生成的编译文件(如 mexa64、mexmaci64 等)提供适当的 mex 扩展名,该文件就可以工作。
需要注意的是,您无需使用 MATLAB 中的 mex 函数来编译您的文件。这允许您使用一些不受支持的方式在 MATLAB 之外进行编译。如果您没有并行工具箱,如果您需要对正在发生的事情进行更微妙的控制,或者更喜欢在工作流程中使用 make,这可能会很有用。如何开始使用的说明在这里。
于 2013-01-31T19:10:47.013 回答