Я пишу код OpenCL для сборки разреженной матрицы из дискретности конечных элементов, и я был бы признателен за советы относительно умной структуры, которую я мог бы использовать для сборки этой матрицы в коде ядра! Я имею в виду, мне нужно получить доступ к случайной матричной позиции в ядре!Доступ к разреженной матрице OpenCL из ядра
ответ
Случайный доступ к большому набору данных обходится на графическом процессоре. Я бы не позволяет всем ядрам произвольно записывать в одну главную таблицу. Это может привести к ухудшению производительности, чем к серийному процессору.
Вместо этого я, вероятно, предоставил каждому ядру свой кусок памяти для работы. Возможно, каждый из них должен собрать часть матрицы, используя небольшой список координат с корнями (строки, столбцы, значения). Каждое ядро должно просто работать над собственным блоком памяти при сборке данных матрицы, а затем я вытаскиваю эти данные обратно в CPU, который будет сортироваться и перенастраиваться в более эффективный формат.
Если вам нужна дальнейшая работа над отсортированными матричными данными, было бы лучше создать второе ядро. Ядра работают лучше всего на простых задачах.
- 1. Применение случайной проекции к большой разреженной матрице
- 2. pyspark: редкие векторы к scipy разреженной матрице
- 3. R список векторов к разреженной матрице
- 4. подмножество разреженной матрицы к плотной матрице
- 5. Добавление столбцов pandas к разреженной матрице
- 6. OpenCL Доступ к памяти
- 7. Python - отображение по разреженной матрице
- 8. Заполнение известных значений разреженной матрице
- 9. группа по scipy разреженной матрице
- 10. openCL без внешнего файла ядра
- 11. Доступ к матрице рубинового
- 12. OpenCL: Код ядра?
- 13. Оптимизация компилятора ядра OpenCL
- 14. Синтаксис определения ядра OpenCL
- 15. OpenCL Недопустимое имя ядра
- 16. OpenCL Ядра аргументы неоднозначность
- 17. Доступ к матрице с индексами из вектора
- 18. Доступ к многоугольной матрице из json-файлов
- 19. Оптимизация ядра opencl
- 20. Сортировка в разреженной матрице (Python 2. *)
- 21. Matrix Completion на 98% разреженной матрице
- 22. Измерение пропускной способности ядра OpenCL
- 23. Найти n наибольших чисел в разреженной матрице
- 24. Ошибка компиляции ядра OpenCL
- 25. OpenCL ядра + ClMagma массивы
- 26. Код ядра OpenCl
- 27. Killing OpenCL ядра
- 28. аргументы ядра OpenCL
- 29. Сбой ядра opencl
- 30. segfault из плохого ядра OpenCL 2.0
Я не сильно разбираюсь в дискретности конечных элементов, но GPGPU.org [http://gpgpu.org/index.php?s=sparse%20matrix&searchbutton=Search] содержит много статей о разреженных матрицах. –