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_VISUAL_PUBLIC_OPTION_MK__
11 __CUDA_VISUAL_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)
43 CXX_OPTIMISATION+= /Ox # All optimisation
47 #CXX_OPTIMISATION+= /arch:SSE # By default with 64bits processor
48 #CXX_OPTIMISATION+= /arch:SSE2 # By default with 64bits processor
49 #CXX_OPTIMISATION+= /arch:AVX # ko home
50 #X86_CXX_OPTIMISATION+= /arch:AVX2 # cuda2,i7 (from visual 2013)
57 # Version minimale : vide (sera surcharg�e)
58 # Surcharger automatiquement (par exemple en fonction du type de la target)
62 ########################
64 ########################
71 # https://developer.nvidia.com/cuda-gpus
72 # Quadro Fx4600 : sm_10
73 # Quadro nvs140M : sm_11
78 # Quadroplex 7000 sm_20
86 # NVCCFLAGS possibilities:
88 # -arch=<compute_xy> Generate PTX for capability x.y
89 # -code=<sm_xy> Generate binary for capability x.y, by default same as -arch
90 # -gencode arch=...,code=... Same as -arch and -code, but may be repeated (executable is bigger, and compilation time longer)
92 # Target : Syntaxe light (shorcut)
93 # : Avantage : short,easy, quick
94 # : Incovenient : only one target can be specify!
96 NVCCFLAGS+= -arch=sm_20
98 # Target : Syntaxe full
99 # : Avantage : many target can be specify!
100 # : : Allow jit compilation at runtime, for deploying in a gpu with higher arch than arch use for developpement.
102 # : Option : -arch : Virtual architecture
103 # : generate PTX (ptx code is the same as byte code in java)
104 # : Like java, a jit compilation at runtime is performed.
105 # : Jit compilatioonce is performed only once, fortunately a cache is used to persist a final binary image.
107 # : Option : -code : Real architecture
108 # : nvcc embeded a compiled code image in the executable for each specified architecture -arch,
109 # : 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?)
113 # Enable or disable all following lignes
114 #NVCCFLAGS+= -gencode arch=compute_20,code=sm_20 #idem NVCCFLAGS+= -arch=sm_20
115 #NVCCFLAGS+= -gencode arch=compute_30,code=sm_30 #idem NVCCFLAGS+= -arch=sm_30
116 #NVCCFLAGS+= -gencode arch=compute_35,code=sm_35 #idem NVCCFLAGS+= -arch=sm_35
117 #NVCCFLAGS+= -gencode arch=compute_50,code=sm_50 #idem NVCCFLAGS+= -arch=sm_50
121 #Option de compilation
122 # Version minimale : vide
123 # Surcharger automatiquement (par exemple en fonction du type de la target)
129 NVCCFLAGS+= -use_fast_math #idem -ftz=true -prec_div=false -prec_sqrt=false
130 NVCCFLAGS+= --fmad=true #
136 # Version minimale : vide (sera surcharg�e)
137 # Surcharger automatiquement (par exemple en fonction du type de la target)
145 #decommneter la ligne pour
146 # (1) empecher l'optimisation
147 # (2) activer les flag de debug
158 #Injection de variable dans le code
159 # same as #define XXX YYY
161 #Attention, pas mettre -D, ni #define, que XXX
163 CODE_DEFINE_VARIABLES+=#
165 # Injection automatique de lib windows standard
166 # true (ou n'importe quoi) pour activer!
167 # rien pour desactiver
168 # Version minimale : vide (avec # pour le montrer)
170 EXCLUDE_LIBRARY_FILES+=#
173 ###############################################
175 ###############################################
177 endif#__CUDA_VISUAL_PUBLIC_OPTION_MK__