2013-08-22 2 views
2

Это код ссылки http://wind.d.umn.edu/acmclub/sites/default/files/summation.cu предоставлен в http://wind.d.umn.edu/acmclub/?q=node/12 Я начинающий программист, но все же я мог следовать коду и объяснению, за исключением нескольких вещей.beginner Программа Cuda

1.] Что значит "новый" в этой строке взяты из summation.cu

sum_h = новое беззнаковое длинное();

2.] Также я действительно не мог понять этот код. Какая прелесть служит? Я бы благодарен, если вы могли бы указать на некоторые начинающие ресурсы на «новый» & «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

Спасибо !!! BTW Я уже закончил python, так что могу ли я кодировать CUDA в python, а не для C/C++. Если нет, то, как было предложено вами, я начну с C++, а не C. – vinita

+0

@vinita CUDA в питоне - никогда не думал об этом - звучит круто, я посмотрю на него - thx – Jost

+0

Да, есть что-то, что называется PYCUDA. – vinita

1
  1. Как указал Спаситель Я в комментариях - новое означает распределение динамической памяти в куче во время выполнения. Дополнительная информация here.
  2. Я думаю, что это очень похоже на C-функцию atoi, которая преобразует число, сохраненное в виде char, в целое число. В этом случае это должно преобразовать число (сохраненное как char) в argv[1] в unsigned long int. Проверьте это here.
  3. Язык, используемый в CUDA, называется «C для CUDA», и пока я читаю и изучаю, вы можете писать код на C, но есть много функций C++, которые также поддерживаются. Вы можете начать смотреть на CUDA DOCUMENTATION.

Надеюсь, это поможет.

+1

'new' означает динамическое распределение памяти в куче во время выполнения. Дополнительная информация здесь: http://www.tutorialspoint.com/cplusplus/cpp_dynamic_memory.htm –

+0

@SaviourSelf это более чем правильно. Я отредактирую сообщение. Спасибо за ссылку. – BRabbit27

Смежные вопросы