Как повысить эффективность стандартного алгоритма сложения матриц в c? - PullRequest
3 голосов
/ 28 июля 2011

Как бы я повысила эффективность стандартного алгоритма сложения матриц?

Матрица представлена ​​двумерным массивом и добавляется последовательно.

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Я не собираюсь читать весь ваш код. Как я вижу, это дополнительная часть

 for(i=0;i<r1;i++)
    for(j=0;j<c1;j++)
       C[i][j]=A[i][j]+B[i][j];

Я не думаю, что это можно улучшить по сложности. Что касается других типов микрооптимизации, таких как выполнение ++i вместо i++ или изменение порядка циклов и т. Д. - я думаю, что вам не следует беспокоиться об этом, пока вы не запустите профилировщик, который покажет вам, что это узкие места вашей работы. Помните, преждевременная оптимизация - корень всего зла :)

0 голосов
/ 28 июля 2011

Вы можете попробовать использовать GPU вместо CPU для выполнения интенсивных операций.Вы можете использовать AMP для этого.

0 голосов
/ 28 июля 2011

Наивный двойной цикл for довольно близок к оптимальному для переносимого кода, если вы получаете два цикла for в правильном порядке.Чтобы получить максимальную производительность, необходимо последовательно обращаться к памяти.

Вы можете развернуть циклы, но это не сильно повлияет на производительность.

Если вы хотите добиться максимальной производительности, тогда не делайтеНапишите это самостоятельно и вместо этого используйте BLAS , оптимизированный для вашей платформы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...