Цитата:
Сообщение от Gromov
Пишите, пожалуйста, критику и отзывы.
|
У меня этот способ ускорения вылезает первым по запросу "linux считать математику быстрее"
Для получение наилучшего результата я советую подставить разные ключи оптимизации, бывает так, что -Ofast замедляет программы, а не ускоряет их. Бывает и такое, что -Ofast делает программу неработоспособной, если важна точность вычислений, потому что -Ofast включает в себя ключ
-ffast-math -
обработка математики с понижением точности.
Цитата:
This option is not turned on by any -O option besides -Ofast since it can result in incorrect output for programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however, yield faster code for programs that do not require the guarantees of these specifications.
|
Например, широко известная проблема
Цитата:
int3 cell;
for(cell.x = 0; cell.x < cells.x; ++cell.x)
for(cell.y = 0; cell.y < cells.y; ++cell.y)
for(cell.z = 0; cell.z < cells.z; ++cell.z)
{
int id = cell.x*cells.y*cells.z + cell.y*cells.z + cell.z;
float3 moment = moments_ram_raw.get(id);
}
|
Переменная moment будет иметь разные значение с ключом -Ofast и без ключа -Ofast.
Мой совет: никогда не использовать -Ofast, а просто использовать -O3, например.