2012-10-15 56 views
1

使用CUDA或其他方法可以在GPU上使用openMP运行程序吗?CUDA:使用OpenMP运行程序

我有一个并发程序,但我的电脑只有2个核心。

我需要测试8个或更多内核的程序。

感谢您的帮助!

+0

未来的OpenMP版本可能会合并加速器支持,但现在唯一的选择是使用比CPU内核多的线程运行。 –

+0

这是正常的吗?我有2个核心,运行4或8的程序,结果是一样的:\ – gaussblurinc

+0

那么,你不会得到任何真正的加速(更糟的是,由于增加的开销,你会得到放缓),但至少你可以确认你的代码可以使用8个线程。 –

回答

3

OpenACC这是有点类似于OpenMP,虽然当然适应CPU + GPU非常不同的不对称情况。

如果您的目的是测试OpenMP代码,答案是肯定的否。你不能采用同一个程序,反正它也不会以同样的方式执行。

最好的办法可能是使用OMP_NUM_THREADS = 8执行OpenMP程序,即使只有2个内核可用,它也将启动8个线程。尽管如此,某些方面(例如锁定争用)仍然会与真正的8核心系统不同。