2015-05-15 3 views
1

У меня есть словарь, и я хотел бы узнать, можно ли использовать его в качестве параметра ядра.используя словарь в pycuda

, например

У меня есть CUDA Kernel подпись

__global__ void calTab(Tableaux) 

Tableaux является структура C, соответствующая

typedef struct 
{ 
    float *Tab1; 
    float *Tab2; 
} Tableaux; 

в питона Tableaux соответствуют ниже словаря:

Tableaux={} 
Tableaux["Tab1"]=[] 
Tableaux["Tab2"]=[] 

Можно ли использовать словарь как структуру C без использования API C?

Спасибо заранее

ответ

0

Ни одно из того, что вы предлагаете это возможно. В PyCuda, вы не можете

  1. Передайте словарь в ядро ​​
  2. Проходят список ядра
  3. непосредственно перевести словарь на структуру C++ в коде устройства
  4. непосредственно перевести список к C линейный ++ массив в устройстве

PyCUDA может использовать классы Python в качестве структур C++ и имеет многоуровневый массив для использования на графическом процессоре. Таким образом, точки 3 и 4 возможны, но не так, как вы хотели бы их сделать. Оба метода обсуждаются в документации, here for gpuarray и here for structures.

+0

привет, спасибо за помощь, но где я могу найти соответствующую документацию ?? – SOCKet

+1

@SOCKet: см. Ссылки в моем редактировании. Было бы хорошо, если бы вы согласились с этим ответом только для того, чтобы убрать этот вопрос с оставшейся без очереди очереди и облегчить поиск в поисках следующего человека, который приходит вместе с аналогичным вопросом – talonmies