решает свою собственную маленькую матрицу. Циклическая обработка потока по одной матрице - плохая идея. Если не что-то иное, производительность, получаемая при асинхронном чтении, огромна.

асть более крупной проблемы, мне нужно решить небольшие линейные системы (т.е. NxN, где N ~ 10), поэтому использование соответствующих библиотек cuda не имеет никакого смысла с точки зрения скорости.

К сожалению, еще кое-что неясно, как решить такие системы без использования больших пушек, таких как GSL, EIGEN и т. Д.

Кто-нибудь может указать мне в направлении решателя плотных матриц (Ax = B) в прямой C?

Для тех, кто заинтересован, базовая структура генератора для этого раздела кода:

ndarray=some.generator(N,N)
for v in range N:
    B[v]=_F(v)*constant
    for x in range N:
        A[v,x]=-_F(v)*ndarray[x,v]

К сожалению, у меня почти нулевые знания по высшей математике, поэтому любые советы будут оценены.

ОБНОВЛЕНИЕ: я работал над этим, и у меня есть почти решение, которое работает, но не работает. Любой, кто прячется, может проверить, что у меня так далекоPastebin.

Я использую Crout Decomposition с Pivoting, который кажется наиболее общим подходом. Идея этого теста заключается в том, что каждый поток выполняет одну и ту же работу. Скучно, я знаю, но план состоит в том, что переменная matrixcount увеличивается, вводятся фактические данные, и каждый поток решает маленькие матрицы индивидуально.

Спасибо всем, кто проверял это.

ОБНОВЛЕНИЕ ПОСЛЕ ОТВЕТА: Закончен код решения матрицы для работы с процессором и графическим процессором, проверьте мою ленивую записьВот

Ответы на вопрос(1)

Ваш ответ на вопрос