2013-08-22 138 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