Можно ли использовать буфер GPU cudaMalloc в разных контекстах (потоки ЦП), которые используют тот же GPU? Каждый контекст выделяет входной буфер, который необходимо заполнить ядром предварительной обработки, которое будет использовать весь графический процессор, а затем распределить его.Поделиться буферами GPU в разных контекстах CUDA
Этот сценарий идеально подходит для избежания множественной передачи данных на и с графических процессоров. Приложение представляет собой формирователь луча, который объединяет несколько сигналов антенны и генерирует несколько лучей, где каждый луч будет обрабатываться с помощью другого контекста графического процессора. Весь обрабатывающий трубопровод для балок уже на месте, мне просто нужно добавить элемент формирования луча. Если каждый поток генерирует собственный луч, он будет дублировать входные данные, поэтому я бы хотел избежать этого (также, гораздо эффективнее генерировать несколько лучей за один раз).
Если вы используете fork, вы имеете в виду функцию fork для процесса OS, вы путаете потоки и процессы. 'fork()' создает новый процесс, и контекст не может быть разделен между двумя процессами. Однако контекст может быть разделен между двумя потоками ЦП в одном и том же процессе. Взгляните [здесь] (http://stackoverflow.com/questions/22950047/cuda-intialization-error-after-fork/22950549?s=1|3.2403#22950549) –
Вы правы. Проблема вызвана fork(). – 770966796