INSTALL.md: add section discussing how to enable CPU specific optimizations

This commit is contained in:
Even Rouault 2017-06-26 13:13:26 +02:00
parent 533fa2fdee
commit 6239ed7be4
1 changed files with 23 additions and 1 deletions

View File

@ -9,7 +9,7 @@ To build the library, type from source tree directory:
``` ```
mkdir build mkdir build
cd build cd build
cmake .. cmake .. -DCMAKE_BUILD_TYPE=Release
make make
``` ```
Binaries are then located in the 'bin' directory. Binaries are then located in the 'bin' directory.
@ -63,6 +63,28 @@ Note 4 : On MacOS, if it does not work, try adding the following flag to the cma
You can use cmake to generate the project files for the IDE you are using (VC2010, XCode, etc). You can use cmake to generate the project files for the IDE you are using (VC2010, XCode, etc).
Type 'cmake --help' for available generators on your platform. Type 'cmake --help' for available generators on your platform.
# Enabling CPU specific optimizations
For Intel/AMD processors, OpenJPEG implements optimizations using the SSE4.1
instruction set (for example, for the 9x7 inverse MCT transform) and the AVX2
instruction set (for example, for the 5x3 inverse discrete wavelet transform).
Currently, those optimizations are only available if OpenJPEG is built to
use those instruction sets (and the resulting binary will only run on compatible
CPUs)
With gcc/clang, it is possible to enable those instruction sets with the following :
cmake -DCMAKE_C_FLAGS="-O3 -msse4.1 -DNDEBUG" ..
cmake -DCMAKE_C_FLAGS="-O3 -mavx2 -DNDEBUG" ..
(AVX2 implies SSE4.1)
Or if the binary is dedicated to run on the machine where it has
been compiled :
cmake -DCMAKE_C_FLAGS="-O3 -march=native -DNDEBUG" ..
# Modifying OpenJPEG # Modifying OpenJPEG
Before committing changes, run: Before committing changes, run: