Optimization MATLAB&;Mex文件:根据输入参数大小自动优化CUDA代码

Optimization MATLAB&;Mex文件:根据输入参数大小自动优化CUDA代码,optimization,matlab,cuda,mex,Optimization,Matlab,Cuda,Mex,嘿,那里, 我目前正在用matlab开发一个Mex文件,包括CUDA计算。我想知道是否有一种很好的方法可以“自动”优化程序,以适应用户的任意输入参数。例如,当输入参数不超过某个大小时,尝试使用共享和/或恒定内存。。。这只会在一定限度内起作用。从那时起,必须使用全局内存。但这种优化只能在运行时进行,因为这是我从用户那里了解输入参数大小的关键。有简单的解决办法吗? 谢谢 您可以简单地编写不同的内核,并决定在运行时调用哪些内核 您还可以使用DeviceQueryAPI或进行一些微基准测试,以确定运行时

嘿,那里, 我目前正在用matlab开发一个Mex文件,包括CUDA计算。我想知道是否有一种很好的方法可以“自动”优化程序,以适应用户的任意输入参数。例如,当输入参数不超过某个大小时,尝试使用共享和/或恒定内存。。。这只会在一定限度内起作用。从那时起,必须使用全局内存。但这种优化只能在运行时进行,因为这是我从用户那里了解输入参数大小的关键。有简单的解决办法吗?
谢谢

您可以简单地编写不同的内核,并决定在运行时调用哪些内核


您还可以使用DeviceQueryAPI或进行一些微基准测试,以确定运行时共享/常量内存的大小。如果您不想采用特定的GPU型号,这可能是必要的。

啊,好的,谢谢,听起来不错。因此,当我有一个全局变量是
\uuuu constant\uuuu
时,当我不使用它时(例如,当调用内核以获得更大的问题大小时,常量内存太小),这不会使我的程序变慢吗?每个GPU型号的恒定内存和共享内存不同吗?这个问题与原来的问题大不相同。请编辑原始问题或发布新问题。正确回答会占用一些空间。