Буфферы

Discussion in 'OpenCL' started by _qwe8013, Oct 22, 2024.

  1. _qwe8013

    _qwe8013 Active Member

    Blog Posts:
    2
    Joined:
    Nov 30, 2016
    Messages:
    125
    Имеется набор kernel-ов, которые надо запустить одновременно. Есть буффер, который передаётся всем kernel-ам, каждый kernel обращается (на чтение/запись) к разным участкам этого буффера (участки не пересекаются). Есть вариант разбить этот буффер на большое количество более мелких, но этих мелких буфферов в такой ситуации будет много. Какой вариант эффективнее?
     
  2. MaKsIm

    MaKsIm Active Member

    Blog Posts:
    0
    Joined:
    Feb 11, 2008
    Messages:
    151
    Тогда в чем проблема. Пускай обращаются. Зачем разбивать? Раздайте всем по собственному указателю на свой участок и пускай сидят в одном буфере.

    Их же в таком случае даже синхронизировать не надо. Достаточно предусмотреть зазоры между буферами и заполнить их контрольными значениями для определения переполнения
     
    _qwe8013 likes this.
  3. _qwe8013

    _qwe8013 Active Member

    Blog Posts:
    2
    Joined:
    Nov 30, 2016
    Messages:
    125
    Я просто подозревал, что там могут быть проблемы с производительностью, раз их нет, то так и сделаю, спасибо за ответ.
     
  4. MaKsIm

    MaKsIm Active Member

    Blog Posts:
    0
    Joined:
    Feb 11, 2008
    Messages:
    151
    Если и будут проблемы с производительностью, то это уже не из-за буфера(ов). Избыточная сихронизация (куча мест, в которых простаивают вычислители), слишком много потоков (недостаточно вычислителей), недостаточно пропускной способности (скорости работы памяти/шины передачи данных) итд итп. В любом случае разделением это не решится.
     
  5. Marylin

    Marylin Active Member

    Blog Posts:
    0
    Joined:
    Feb 17, 2023
    Messages:
    268
    а что такое кернел?