CudaMemcpyFromSymbol и различные модули компиляцииC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 CudaMemcpyFromSymbol и различные модули компиляции

Сообщение Anonymous »

Я пытаюсь получить указатель на функцию Cuda, чтобы передать его ядру Cuda.
Я создал вспомогательную функцию GetDeviceSymbolAddress, которая получает устройство символ по константной ссылке и возвращает его значение. В моем случае он должен вернуть указатель функции.
Затем я передаю указатель функции ядру Cuda и вызываю его.
Однако я заметил, что если ядро ​​Cuda определенный в другой компиляции (в другом файле .cu), адрес, возвращаемый GetDeviceSymbolAddress, отличается (и, вероятно, недействителен), и функция ядра не может его вызвать.
Вот пример:< /p>
test.chu:

Код: Выделить всё

#ifndef TEST_H
#define TEST_H

#include 

#define SWITCH 1

using pfloat__fn_pvoid = float* (*)(const void*);

// Test and log Cuda errors
#define CUDA_CHECK(err)                                     \
do {                                                      \
auto e = err; /* err might be a function call */        \
if (e != cudaSuccess) {                                 \
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79286363/cudamemcpyfromsymbol-and-different-compilation-units[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»