Skip to content

Commit

Permalink
Merge branch 'tpadiole-main-patch-00435' into 'main'
Browse files Browse the repository at this point in the history
Update toolchain.cmake

See merge request gysela-developpers/gyselalibxx!710

--------------------------------------------
  • Loading branch information
tpadioleau committed Oct 4, 2024
1 parent 9eba625 commit f1ca755
Show file tree
Hide file tree
Showing 26 changed files with 78 additions and 52 deletions.
49 changes: 30 additions & 19 deletions ci_tools/gyselalib_static_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,26 +412,28 @@ def check_directives(file):
if file.data_xml is None:
if file.file.suffix != '.hpp':
return
raw_strs = [r['str'] for r in file.raw]
try:
pragma_idx = file.raw.index('pragma')
pragma_idx = raw_strs.index('pragma')
except ValueError:
pragma_idx = None
if pragma_idx is None or file.raw[pragma_idx-1] != '#' or file.raw[pragma_idx+1] != 'once':
if pragma_idx is None or raw_strs[pragma_idx-1] != '#' or raw_strs[pragma_idx+1] != 'once':
report_error(FATAL, file, 2, "#pragma once missing from the top of a hpp file")

if file.file.suffix == '.hpp' and not file.root.findall("./dump/directivelist/directive[@str='#pragma once']"):
report_error(FATAL, file, 2, "#pragma once missing from the top of a hpp file")
else:
if file.file.suffix == '.hpp' and not file.root.findall("./dump/directivelist/directive[@str='#pragma once']"):
report_error(FATAL, file, 2, "#pragma once missing from the top of a hpp file")

directives = {d.attrib['linenr']: d.attrib['str'].split() for d in file.root.findall("./dump/directivelist/directive")
if Path(d.attrib['file']) == file.file}
include_directives = {linenr: words[1] for linenr, words in directives.items() if len(words)>1 and words[0] == '#include'}
for linenr, include_str in include_directives.items():
include_file = include_str[1:-1]
possible_matches = [match for f in global_folders for match in f.glob(f'**/{include_file}')]
if possible_matches and include_str[0] != '"':
report_error(STYLE, file, linenr, f'Quotes should be used to include files from the gyselalibxx project ({include_str}->"{include_file}")')
elif not possible_matches and include_str == '"':
report_error(STYLE, file, linenr, f'Angle brackets should be used to include files from external libraries ({include_str}-><{include_file}>)')
directives = {d.attrib['linenr']: d.attrib['str'].split() for d in file.root.findall("./dump/directivelist/directive")
if Path(d.attrib['file']) == file.file}
include_directives = {linenr: words[1] for linenr, words in directives.items() if len(words)>1 and words[0] == '#include'}
for linenr, include_str in include_directives.items():
include_file = include_str[1:-1]
possible_matches = [match for f in global_folders for match in f.glob(f'**/{include_file}')]
if possible_matches and include_str[0] != '"':
report_error(STYLE, file, linenr, f'Quotes should be used to include files from the gyselalibxx project ({include_str}->"{include_file}")')
elif not possible_matches and include_str == '"':
report_error(STYLE, file, linenr, f'Angle brackets should be used to include files from external libraries ({include_str}-><{include_file}>)')

def update_aliases(all_files):
"""
Expand Down Expand Up @@ -703,16 +705,23 @@ def check_exec_space_usage(file):
for s_id, scope in scopes.items():
if scope['exec_space'] == 'DefaultHostExecutionSpace':
continue
relevant_code = config.findall(f".//token[@scope='{s_id}']")
relevant_code = [c for c in config.findall(f".//token[@scope='{s_id}']") if c.attrib['file'] == str(file.file)]
code_keys = [c.attrib['str'] for c in relevant_code]
exception_keys = ('is_same','is_same_v', 'tie', 'tuple_size', 'tuple_element', 'make_tuple', 'get', 'array', 'tuple',
'conditional', 'conditional_t', 'enable_if', 'enable_if_t', 'is_base_of', 'is_base_of_v',
'integer_sequence', 'pair', 'declval', 'tuple_cat', 'integral_constant', 'size_t', 'move',
'optional')
'make_integer_sequence', 'make_index_sequence', 'index_sequence',
'experimental::full_extent', 'experimental::submdspan')
if 'std' in code_keys:
idx = code_keys.index('std')
if code_keys[idx+1] == '::' and code_keys[idx+2] not in exception_keys:
func = ' '.join(code_keys[idx:idx+3])
func = None
if code_keys[idx+1] == '::':
func = code_keys[idx+2]
idx += 2
while code_keys[idx+1] == '::':
func += '::' + code_keys[idx+2]
idx += 2
if func and func not in exception_keys:
msg = f"Std functions are not designed to run on GPU. You may wish to check if there is an equivalent Kokkos:: function? ({func})"
report_error(FATAL, file, relevant_code[idx].attrib['linenr'], msg)

Expand Down Expand Up @@ -740,9 +749,11 @@ def check_exec_space_usage(file):
error_level = max(error_level, possible_error_levels[STYLE])

for geom, files in relevant_files.items():
print(geom, files)
if no_file_filter or any(f in filter_files for f in files):
print("------------- Checking ", geom, " -------------")
p = subprocess.run(cppcheck_command + list(files) + [f'--file-filter={f}' for f in filter_files+['*geometry.hpp', str(spec_info)]], check=False)
geom_file_filter = [] if no_file_filter else filter_files+['*geometry.hpp', str(spec_info)]
p = subprocess.run(cppcheck_command + list(files) + [f'--file-filter={f}' for f in geom_file_filter], check=False)
if p.returncode:
error_level = max(error_level, possible_error_levels[STYLE])

Expand Down
1 change: 1 addition & 0 deletions simulations/geometry5D/testcollisions/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryRTheta/diocotron/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryRTheta/vortex_merger/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryVparMu/collisions/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryXVx/bump_on_tail/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryXVx/landau/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryXY/guiding_center/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
1 change: 1 addition & 0 deletions simulations/geometryXYVxVy/landau/pdi_out.yml.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// SPDX-License-Identifier: MIT
#pragma once

constexpr char const* const PDI_CFG = R"PDI_CFG(
metadata:
Expand Down
2 changes: 1 addition & 1 deletion src/collisions/collisioninfo_radial.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class CollisionInfoRadial
double rpeak_on_r = rpeak / radial_profile(idx);
double q_on_qrpeak = safety_factor(idx) / q_rpeak;
nustar0_r(idx)
= nustar0_rpeak * q_on_qrpeak * rpeak_on_r * std::sqrt(rpeak_on_r);
= nustar0_rpeak * q_on_qrpeak * rpeak_on_r * Kokkos::sqrt(rpeak_on_r);
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,8 @@ DFieldSpMomX DiffusiveNeutralSolver::operator()(

DConstFieldVx quadrature_coeffs = m_quadrature_coeffs;

IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(allfdistribu));

// fluid moments computation
ddc::parallel_fill(density, 0.);
ddc::parallel_for_each(
Expand All @@ -209,7 +211,7 @@ DFieldSpMomX DiffusiveNeutralSolver::operator()(
KOKKOS_LAMBDA(IdxSpX const ispx) {
double particle_flux(0);
double momentum_flux(0);
for (IdxVx const ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx const ivx : idx_range_vx) {
CoordVx const coordv = ddc::coordinate(ivx);
double const val(quadrature_coeffs(ivx) * allfdistribu(ispx, ivx));
density(ispx) += val;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,16 @@ void KineticFluidCouplingSource::operator()(

DConstFieldVx quadrature_coeffs = get_const_field(m_quadrature_coeffs);

IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(allfdistribu));

ddc::parallel_fill(Kokkos::DefaultExecutionSpace(), kinsp_density, 0.);
ddc::parallel_for_each(
Kokkos::DefaultExecutionSpace(),
dom_kspx,
KOKKOS_LAMBDA(IdxSpX const ispx) {
double particle_flux(0);
double momentum_flux(0);
for (IdxVx const ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx const ivx : idx_range_vx) {
CoordVx const coordv = ddc::coordinate(ivx);
double const val(quadrature_coeffs(ivx) * allfdistribu(ispx, ivx));
kinsp_density(ispx) += val;
Expand Down
2 changes: 1 addition & 1 deletion src/geometryXVx/poisson/chargedensitycalculator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ DFieldX ChargeDensityCalculator::operator()(DFieldX const rho, DConstFieldSpXVx
rho,
KOKKOS_LAMBDA(IdxXVx ixvx) {
double sum = 0.0;
for (auto isp : get_idx_range(kinetic_charges)) {
for (auto isp : kin_species_idx_range) {
sum += kinetic_charges(isp) * allfdistribu(isp, ixvx);
}
return sum;
Expand Down
7 changes: 4 additions & 3 deletions src/geometryXVx/rhs/collisions_inter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ void CollisionsInter::get_derivative(DFieldSpXVx const df, DConstFieldSpXVx cons
auto fluid_velocity = get_field(fluid_velocity_f);
auto temperature = get_field(temperature_f);

IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(allfdistribu));

DFieldMemVx quadrature_coeffs_alloc(
trapezoid_quadrature_coefficients<Kokkos::DefaultExecutionSpace>(
get_idx_range<GridVx>(allfdistribu)));
trapezoid_quadrature_coefficients<Kokkos::DefaultExecutionSpace>(idx_range_vx));
DFieldVx quadrature_coeffs = get_field(quadrature_coeffs_alloc);

//Moments computation
Expand All @@ -51,7 +52,7 @@ void CollisionsInter::get_derivative(DFieldSpXVx const df, DConstFieldSpXVx cons
IdxX ix(ddc::select<GridX>(ispx));
double particle_flux(0);
double momentum_flux(0);
for (IdxVx ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx ivx : idx_range_vx) {
CoordVx const coordv = ddc::coordinate(ivx);
double const val(quadrature_coeffs(ivx) * allfdistribu(isp, ix, ivx));
density(isp, ix) += val;
Expand Down
10 changes: 7 additions & 3 deletions src/geometryXVx/rhs/collisions_intra.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,8 @@ void CollisionsIntra::compute_rhs_vector(
DConstFieldSpXVx allfdistribu,
double fthresh) const
{
IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(AA));

ddc::parallel_for_each(
Kokkos::DefaultExecutionSpace(),
get_idx_range(RR),
Expand All @@ -236,12 +238,12 @@ void CollisionsIntra::compute_rhs_vector(
IdxVx const ivx_next = ivx + 1;
IdxVx const ivx_prev = ivx - 1;

if (ivx == get_idx_range<GridVx>(AA).front()) {
if (ivx == idx_range_vx.front()) {
RR(isp, ix, ivx) = (2. - BB(isp, ix, ivx)) * allfdistribu(isp, ix, ivx)
+ (-CC(isp, ix, ivx)) * allfdistribu(isp, ix, ivx_next)
- 2. * AA(isp, ix, ivx) * fthresh;

} else if (ivx == get_idx_range<GridVx>(AA).back()) {
} else if (ivx == idx_range_vx.back()) {
RR(isp, ix, ivx) = (2. - BB(isp, ix, ivx)) * allfdistribu(isp, ix, ivx)
+ (-AA(isp, ix, ivx)) * allfdistribu(isp, ix, ivx_prev)
- 2. * CC(isp, ix, ivx) * fthresh;
Expand Down Expand Up @@ -276,6 +278,8 @@ DFieldSpXVx CollisionsIntra::operator()(DFieldSpXVx allfdistribu, double dt) con
get_idx_range<GridVx>(allfdistribu)));
DConstFieldVx quadrature_coeffs = get_const_field(quadrature_coeffs_alloc);

IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(allfdistribu));

//Moments computation
ddc::parallel_fill(density, 0.);
ddc::parallel_for_each(
Expand All @@ -284,7 +288,7 @@ DFieldSpXVx CollisionsIntra::operator()(DFieldSpXVx allfdistribu, double dt) con
KOKKOS_LAMBDA(IdxSpX const ispx) {
double particle_flux(0);
double momentum_flux(0);
for (IdxVx const ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx const ivx : idx_range_vx) {
CoordVx const coordv = ddc::coordinate(ivx);
double const val(quadrature_coeffs(ivx) * allfdistribu(ispx, ivx));
density(ispx) += val;
Expand Down
4 changes: 3 additions & 1 deletion src/geometryXVx/rhs/collisions_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,11 +206,13 @@ void compute_Vcoll_Tcoll(
ddc::parallel_fill(I3mean, 0.);
ddc::parallel_fill(I4mean, 0.);

IdxRangeVx const idx_range_vx(get_idx_range<GridVx>(allfdistribu));

ddc::parallel_for_each(
Kokkos::DefaultExecutionSpace(),
grid_sp_x,
KOKKOS_LAMBDA(IdxSpX const ispx) {
for (IdxVx const ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx const ivx : idx_range_vx) {
I0mean(ispx) += quadrature_coeffs(ivx) * I0mean_integrand(ispx, ivx);
I1mean(ispx) += quadrature_coeffs(ivx) * I1mean_integrand(ispx, ivx);
I2mean(ispx) += quadrature_coeffs(ivx) * I2mean_integrand(ispx, ivx);
Expand Down
2 changes: 1 addition & 1 deletion src/geometryXVx/rhs/krook_source_adaptive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ void KrookSourceAdaptive::get_amplitudes(DFieldSpX amplitudes, DConstFieldSpXVx
double density_ion = 0.;
double density_electron = 0.;

for (IdxVx ivx : get_idx_range<GridVx>(allfdistribu)) {
for (IdxVx ivx : gridvx) {
density_ion += quadrature_coeffs(ivx) * allfdistribu(iion, ix, ivx);
density_electron += quadrature_coeffs(ivx) * allfdistribu(ielec(), ix, ivx);
}
Expand Down
5 changes: 2 additions & 3 deletions src/geometryXVx/time_integration/predcorr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@

#include <ddc/ddc.hpp>

#include <iboltzmannsolver.hpp>
#include <iqnsolver.hpp>

#include "iboltzmannsolver.hpp"
#include "iqnsolver.hpp"
#include "predcorr.hpp"

PredCorr::PredCorr(IBoltzmannSolver const& boltzmann_solver, IQNSolver const& poisson_solver)
Expand Down
2 changes: 1 addition & 1 deletion src/geometryXYVxVy/poisson/chargedensitycalculator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ void ChargeDensityCalculator::operator()(DFieldXY rho, DConstFieldSpXYVxVy allfd
rho,
KOKKOS_LAMBDA(IdxXYVxVy idx) {
double sum = 0.0;
for (auto isp : get_idx_range(kinetic_charges)) {
for (auto isp : kin_species_idx_range) {
sum += kinetic_charges(isp) * allfdistribu(isp, idx);
}
return sum;
Expand Down
8 changes: 4 additions & 4 deletions src/interpolation/Lagrange.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ KOKKOS_INLINE_FUNCTION double Lagrange<Execspace, GridInterp, BcMin, BcMax>::app
CoordDimI bc_val = x_interp;
const double d = m_right_bound - m_left_bound;
if constexpr (BcMin == BCond::PERIODIC) {
bc_val -= std::floor((x_interp - m_left_bound) / d) * d;
bc_val -= Kokkos::floor((x_interp - m_left_bound) / d) * d;
} else {
if (x_interp < m_left_bound && BcMin == BCond::DIRICHLET) {
bc_val = m_left_bound;
Expand Down Expand Up @@ -181,17 +181,17 @@ KOKKOS_INLINE_FUNCTION double Lagrange<Execspace, GridInterp, BcMin, BcMax>::eva
IdxInterp mid = icell;
if (mid >= m_inner_idx_range.back() && BcMax == BCond::PERIODIC) {
begin = mid - m_poly_support / 2;
end = std::min(m_inner_idx_range.back(), begin + m_poly_support);
end = Kokkos::min(m_inner_idx_range.back(), begin + m_poly_support);
} else if (mid <= m_inner_idx_range.front() && BcMin == BCond::PERIODIC) {
begin = std::max(m_idx_range.front(), mid - m_poly_support / 2);
begin = Kokkos::max(m_idx_range.front(), mid - m_poly_support / 2);
end = begin + m_poly_support;
} else {
if (m_inner_idx_range.front() + m_poly_support / 2 > mid) {
begin = m_inner_idx_range.front();
} else {
begin = mid - m_poly_support / 2;
}
end = std::min(m_idx_range.back() + IdxStepInterp(1), begin + m_poly_support);
end = Kokkos::min(m_idx_range.back() + IdxStepInterp(1), begin + m_poly_support);
}

if (end == m_idx_range.back())
Expand Down
10 changes: 4 additions & 6 deletions src/interpolation/Lagrange_interpolator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,14 @@ class LagrangeInterpolator : public IInterpolator<GridInterp, Grid1D...>
= ddc::create_mirror_and_copy(Kokkos::DefaultExecutionSpace(), inout_data);
auto inout_data_tmp = get_field(inout_data_tmp_alloc);
auto batch_idx_range = ddc::remove_dims_of<GridInterp>(get_idx_range(inout_data));
auto const interp_range = get_idx_range<GridInterp>(inout_data);
ddc::parallel_for_each(
Kokkos::DefaultExecutionSpace(),
batch_idx_range,
KOKKOS_LAMBDA(typename decltype(batch_idx_range)::discrete_element_type const i) {
Lagrange<Kokkos::DefaultExecutionSpace, GridInterp, BcMin, BcMax> evaluator(
deg,
inout_data_tmp[i],
get_idx_range<GridInterp>(inout_data),
ghost);
for (Idx<GridInterp> j : get_idx_range<GridInterp>(inout_data)) {
Lagrange<Kokkos::DefaultExecutionSpace, GridInterp, BcMin, BcMax>
evaluator(deg, inout_data_tmp[i], interp_range, ghost);
for (Idx<GridInterp> j : interp_range) {
inout_data(i, j) = evaluator.evaluate(coordinates(i, j));
}
});
Expand Down
6 changes: 3 additions & 3 deletions src/multipatch/connectivity/connectivity_details.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -426,12 +426,12 @@ struct FindRelevantIdxRangeType<QueryGrid1D, std::tuple<>>
};

/// Specialisation of FindRelevantIdxRangeType to iterate recursively over the possible index range types.
template <class QueryGrid1D, class HeadIdxRangeType, class... IdxRangeTypes>
struct FindRelevantIdxRangeType<QueryGrid1D, std::tuple<HeadIdxRangeType, IdxRangeTypes...>>
template <class QueryGrid1D, class IdxRangeHead, class... IdxRangeTypes>
struct FindRelevantIdxRangeType<QueryGrid1D, std::tuple<IdxRangeHead, IdxRangeTypes...>>
{
/// The type found by the class.
using type = ddc::type_seq_merge_t<
typename SelectRelevantIdxRangeType<QueryGrid1D, HeadIdxRangeType>::type,
typename SelectRelevantIdxRangeType<QueryGrid1D, IdxRangeHead>::type,
typename FindRelevantIdxRangeType<QueryGrid1D, std::tuple<IdxRangeTypes...>>::type>;
};

Expand Down
2 changes: 1 addition & 1 deletion src/utils/ddc_alias_inline_functions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ static constexpr bool is_gslx_field_v = detail::IsGslxField<Type>::value;
* @returns The index range.
*/
template <class... QueryGrids, class FieldType>
KOKKOS_INLINE_FUNCTION auto get_idx_range(FieldType const& field) noexcept
auto get_idx_range(FieldType const& field) noexcept
{
static_assert(
ddc::is_chunk_v<FieldType> || has_idx_range_v<FieldType>,
Expand Down
1 change: 0 additions & 1 deletion src/utils/preprocessor.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// SPDX-License-Identifier: MIT

#pragma once

////////////////////////////////////////
Expand Down
2 changes: 1 addition & 1 deletion src/utils/utils_tools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ template <class... Tags>
KOKKOS_FUNCTION double norm_inf(ddc::Coordinate<Tags...> coord)
{
double result = 0.0;
((result = std::max(result, fabs(coord.template get<Tags>()))), ...);
((result = Kokkos::max(result, Kokkos::fabs(coord.template get<Tags>()))), ...);
return result;
}

Expand Down
2 changes: 1 addition & 1 deletion toolchains/v100.persee/toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ set(CMAKE_BUILD_TYPE Release)

# Compiler options
set(CMAKE_CXX_COMPILER ${PROJECT_SOURCE_DIR}/vendor/kokkos/bin/nvcc_wrapper)
set(CMAKE_CXX_FLAGS "-Wall -Wno-sign-compare -Xcudafe --diag_suppress=unsigned_compare_with_zero -Xcudafe --diag_suppress=integer_sign_change")
set(CMAKE_CXX_FLAGS "-Wall -Wno-sign-compare --Werror cross-execution-space-call -Xcudafe --diag_suppress=unsigned_compare_with_zero -Xcudafe --diag_suppress=integer_sign_change")

# Gyselalibxx options
set(GYSELALIBXX_DEFAULT_CXX_FLAGS "" CACHE STRING "Default flags for C++ specific to Voice++" FORCE)
Expand Down

0 comments on commit f1ca755

Please sign in to comment.