Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
есть код который умножает каждое значение вертикально стояшего вектора на соответсвуюший елемент в каждой колонке матрицы. На самом деле мне надо вернуть не результируюшую матрицу, а вектор горизонтальный, содержаший суммы значений каждого столбца уже перемноженной матрицы. Можно это сделать в данном коде? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2013, 19:07 |
|
||
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
Чтобы сделать быстро, важно под какую CC-совместимость пишите. В общем случае смотрите исходники scan/scanwarp из CUDPP. Хотя там тоже не оптимально при CC2.0 можно и быстрее. А если медленно, то как-то так (в pResult будет искомый вектор): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2013, 01:43 |
|
||
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
Даже точнее так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2013, 14:46 |
|
||
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
вылетает с неизвестным кодом ошибки при копировании результат на хост (хотя он размером с матрицу) - возможно что я грид неправильно обьявил? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. мне кажется я все еше не понимаю принципы адресации скажем если я просто копирую - это работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. если пытаюсь умножить матрицу на вертикальный вектор - это не работает - та же ошибка при копировании результата на хост Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. source file is attached ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2013, 18:15 |
|
||
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
Всё просто: 1. Вы не выделили память под pDevSource, который зачем-то по другому назвали в функции pVerVector. Когда его используете - тогда и ошибка. 2. Ну и не забудьте скопировать исходные данные с хоста на девайс перед вызовом кернел-функции. А вы сами написали эту GPU-шную функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2013, 22:01 |
|
||
|
агрегация данных на CUDA
|
|||
|---|---|---|---|
|
#18+
Всё простоВсё просто: 1. Вы не выделили память под pDevSource, который зачем-то по другому назвали в функции pVerVector. Когда его используете - тогда и ошибка. 2. Ну и не забудьте скопировать исходные данные с хоста на девайс перед вызовом кернел-функции. А вы сами написали эту GPU-шную функцию? 1.все там есть в приаттаченом коде __device__ __constant__ float pDevSource [ 1024 ] = {0x00}; переименовал в последнем варианте для простоты понимания 2. это тоже есть хотя как оказалось подобная функциональность решается еше и так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2013, 00:02 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38202394&tid=2020339]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 142ms |

| 0 / 0 |
