2013-08-22 118 views
2

这是与编码http://wind.d.umn.edu/acmclub/sites/default/files/summation.cu编号http://wind.d.umn.edu/acmclub/?q=node/12 我是一个初学者程序员,但我仍然可以按照代码和解释,除了少数东西。初学者Cuda程序

1]这是从summation.cu采取的“新”在此行中的含义

sum_h =新的无符号长();

2.]此外,我真的不明白这段代码。什么purpuse服务?我很感激,如果你能指出一些初学者资源的“新” &“strtoul将”

n = strtoul(argv[1], NULL, 0); 

3]是代码“summation.cu”在C++完全写入。因此,为了编写CUDA程序,我需要学习C++而不是C吗?或者我需要同时学习C & C++?

回答

2

要长话短说:

  1. new分配内存(如总和)(见details
  2. strtoul一个字符串转换为长(见details
  3. 我想你应该开始与a good C++ book(例如C++ Primer)并稍后学习一些C(例如从this book)。之后,我会从 CUDA开始。

保持你的下巴。

+0

谢谢!顺便说一句,我已经完成了python,所以我可以在python中编写CUDA代码而不是C/C++。如果没有,那么正如你所建议的,我将从C++开始,而不是C开始。 – vinita

+0

@vinita CUDA在Python中 - 从来没有想过 - 听起来很酷,我会看看它 - thx – Jost

+0

是的,有一种叫做PYCUDA的东西。 – vinita

1
  1. 作为救主自我在评论中指出 - 新意味着在运行时在堆上的动态内存分配。更多信息here
  2. 我认为这与C函数atoi非常相似,它将存储为char的数字转换为整数。在你的情况下,这应该将argv[1]中的数字(存储为char)转换为unsigned long int。检查它here
  3. 在CUDA中使用的语言被称为“C for CUDA”,只要我一直在阅读和学习,你可以用C语言编写代码,但是C++中还有许多支持的特性。你可以开始看看CUDA DOCUMENTATION

希望这会有所帮助。

+1

'new'意味着运行时堆上的动态内存分配。更多信息在这里:http://www.tutorialspoint.com/cplusplus/cpp_dynamic_memory.htm –

+0

@SaviourSelf这是比正确的。我将编辑帖子。感谢您的参考。 – BRabbit27