From 6239ed7be41d370c537ca43e198cf2fdc6eb9a60 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 26 Jun 2017 13:13:26 +0200 Subject: [PATCH] INSTALL.md: add section discussing how to enable CPU specific optimizations --- INSTALL.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index b3b293dc..aa0e88df 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,7 +9,7 @@ To build the library, type from source tree directory: ``` mkdir build cd build -cmake .. +cmake .. -DCMAKE_BUILD_TYPE=Release make ``` 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). 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 Before committing changes, run: -- 2.50.1