2 # Author : Cedric.Bilat@he-arc.ch
6 # (A1) Dans les d�finitions de variables ci-dessous, m�fiez-vous des espaces � la fin!
7 # (A2) Laisser espace apr�s le += de surcharge : exemple : xxx+= yyyy
10 ifndef __CUDA_GCC_PUBLIC_OPTION_MK__
11 __CUDA_GCC_PUBLIC_OPTION_MK__=true
13 ###############################################
15 ###############################################
17 ##################################
19 ##################################
21 ########################
23 ########################
25 #Option de compilation
26 # Version minimale : vide
27 # Surcharger automatiquement (par exemple en fonction du type de la target)
33 #CXXFLAGS+= -w # Disable
34 #CXXFLAGS+= -W # Print extra warning messages
35 #CXXFLAGS+= -Wall # Enable all
36 #CXXFLAGS+= -Wunused-variable # show unused-variable
37 #CXXFLAGS+= -Wunused-function # show unused-function
38 #CXXFLAGS+= -Wunused-parameter # show unused-parameter
45 CXX_OPTIMISATION+= -O3 #
51 X86_CXX_OPTIMISATION+= -frerun-loop-opt#
52 #X86_CXX_OPTIMISATION+= --fgcse#
53 X86_CXX_OPTIMISATION+= -fomit-frame-pointer#
56 #X86_CXXFLAGS+= -march=native # Detection automatique arch
57 #X86_CXX_OPTIMISATION+= -march=core2
58 X86_CXX_OPTIMISATION+= -march=corei7 # cuda1
59 #X86_CXX_OPTIMISATION+= -march=corei7-avx # cuda2, mieux?
60 #X86_CXX_OPTIMISATION+= -march=sandybridge # i7 work
61 #X86_CXX_OPTIMISATION+= -march=ivybridge # i7 home
62 #X86_CXX_OPTIMISATION+= -march=haswell
74 # Version minimale : vide (sera surcharg�e)
75 # Surcharger automatiquement (par exemple en fonction du type de la target)
79 ########################
81 ########################
88 # https://developer.nvidia.com/cuda-gpus
89 # Quadro Fx4600 : sm_10
90 # Quadro nvs140M : sm_11
95 # Quadroplex 7000 sm_20
103 # NVCCFLAGS possibilities:
105 # -arch=<compute_xy> Generate PTX for capability x.y
106 # -code=<sm_xy> Generate binary for capability x.y, by default same as -arch
107 # -gencode arch=...,code=... Same as -arch and -code, but may be repeated (executable is bigger, and compilation time longer)
109 # Target : Syntaxe light (shorcut)
110 # : Avantage : short,easy, quick
111 # : Incovenient : only one target can be specify!
113 NVCCFLAGS+= -arch=sm_20
115 # Target : Syntaxe full
116 # : Avantage : many target can be specify!
117 # : : Allow jit compilation at runtime, for deploying in a gpu with higher arch than arch use for developpement.
119 # : Option : -arch : Virtual architecture
120 # : generate PTX (ptx code is the same as byte code in java)
121 # : Like java, a jit compilation at runtime is performed.
122 # : Jit compilatioonce is performed only once, fortunately a cache is used to persist a final binary image.
124 # : Option : -code : Real architecture
125 # : nvcc embeded a compiled code image in the executable for each specified architecture -arch,
126 # : Code image is a true binary load image for each real architecture (present at compilation time?), and ptx code for earch virtual architecture (not present at compilation time?)
130 # Enable or disable all following lignes
131 #NVCCFLAGS+= -gencode arch=compute_20,code=sm_20 #idem NVCCFLAGS+= -arch=sm_20
132 #NVCCFLAGS+= -gencode arch=compute_30,code=sm_30 #idem NVCCFLAGS+= -arch=sm_30
133 #NVCCFLAGS+= -gencode arch=compute_35,code=sm_35 #idem NVCCFLAGS+= -arch=sm_35
134 #NVCCFLAGS+= -gencode arch=compute_50,code=sm_50 #idem NVCCFLAGS+= -arch=sm_50
142 NVCCFLAGS+= -use_fast_math #idem -ftz=true -prec_div=false -prec_sqrt=false
143 NVCCFLAGS+= --fmad=true #
149 # Version minimale : vide (sera surcharg�e)
150 # Surcharger automatiquement (par exemple en fonction du type de la target)
158 #decommneter la ligne pour
159 # (1) empecher l'optimisation
160 # (2) activer les flag de debug
171 #Injection de variable dans le code
172 # same as #define XXX YYY
174 #Attention, pas mettre -D, ni #define, que XXX
176 CODE_DEFINE_VARIABLES+=#
178 # Injection automatique de lib windows standard
179 # true (ou n'importe quoi) pour activer!
180 # rien pour desactiver
181 # Version minimale : vide (avec # pour le montrer)
183 EXCLUDE_LIBRARY_FILES+=#
186 ###############################################
188 ###############################################
190 endif#__CUDA_GCC_PUBLIC_OPTION_MK__