我将尝试使用CUDA来优化一些用MATLAB编写的代码。我最近开始对CUDA进行编程,但是我对它的工作原理有一个大致的了解。
所以,说我想将两个矩阵加在一起。在CUDA中,我可以编写一种算法,该算法将利用线程来计算结果矩阵中每个元素的答案。但是,这种技术可能与MATLAB已经执行的技术不相似吗?在那种情况下,效率是否不取决于技术而仅归因于硬件级别?
回答:
该技术可能相似,但请记住,使用CUDA时,有数百个线程同时运行。如果MATLAB正在使用线程,并且这些线程在Quad内核上运行,则每个时钟周期只会减少4个线程,而在相同的时钟周期下,可以使数百个线程在CUDA上运行。
因此,为回答您的问题,是的,此示例中的效率与技术无关,并且仅归因于硬件。
更多&回答...