Skip to content

Commit

Permalink
Merge branch 'stan-dev:develop' into feature/matrix-input-to-mvn
Browse files Browse the repository at this point in the history
  • Loading branch information
adamhaber committed Jul 18, 2021
2 parents aa929c9 + c87156b commit 03de55a
Show file tree
Hide file tree
Showing 115 changed files with 4,517 additions and 173 deletions.
5 changes: 5 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,11 @@ pipeline {
sh "echo STAN_OPENCL=true>> make/local"
sh "echo OPENCL_PLATFORM_ID=${env.OPENCL_PLATFORM_ID_CPU}>> make/local"
sh "echo OPENCL_DEVICE_ID=${env.OPENCL_DEVICE_ID_CPU}>> make/local"
// skips tests that require specific support in OpenCL
sh 'echo "ifdef NO_CPU_OPENCL_INT64_BASE_ATOMIC" >> make/local'
sh 'echo "CXXFLAGS += -DSTAN_TEST_SKIP_REQUIRING_OPENCL_INT64_BASE_ATOMIC" >> make/local'
sh 'echo "endif" >> make/local'

runTests("test/unit/math/opencl", false)
runTests("test/unit/multiple_translation_units_test.cpp")
} else {
Expand Down
27 changes: 21 additions & 6 deletions benchmarks/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,18 +419,22 @@ def benchmark(
value = 0.4
if function_name in special_arg_values:
if isinstance(special_arg_values[function_name][n], str):
make_arg_function = special_arg_values[function_name][n]
make_arg_function = make_special_arg_values[special_arg_values[function_name][n]]
elif isinstance(
special_arg_values[function_name][n], numbers.Number
):
value = special_arg_values[function_name][n]
if scalar == "double":
if not is_argument_autodiff or (
not is_argument_scalar and (
opencl == "base" or varmat == "base" or make_arg_function != "make_arg"
)):
arg_type_prim = cpp_arg_template.replace("SCALAR", "double");
setup += (
" {} {} = stan::test::{}<{}>({}, state.range(0));\n".format(
arg_type,
arg_type_prim,
var_name,
make_arg_function,
arg_type,
arg_type_prim,
value,
)
)
Expand All @@ -440,11 +444,22 @@ def benchmark(
var_name + "_cl", var_name
)
var_name += "_cl"
if is_argument_autodiff:
var_conversions += (
" stan::math::var_value<stan::math::matrix_cl<double>> {}({});\n".format(
var_name + "_var", var_name)
)
var_name += "_var"
elif varmat == "base" and arg_overload == "Rev":
setup += " auto {} = stan::math::to_var_value({});\n".format(
var_name + "_varmat", var_name
var_conversions += " stan::math::var_value<{}> {}({});\n".format(
arg_type_prim, var_name + "_varmat", var_name
)
var_name += "_varmat"
elif is_argument_autodiff: #rev
var_conversions += " {} {} = {};\n".format(
arg_type, var_name + "_var", var_name
)
var_name += "_var"
else:
var_conversions += (
" {} {} = stan::test::{}<{}>({}, state.range(0));\n".format(
Expand Down
10 changes: 7 additions & 3 deletions lib/tbb_2020.3/build/macos.inc
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,14 @@ ifndef arch
export arch:=ppc32
endif
else
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
export arch:=intel64
ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64)
export arch:=arm64
else
export arch:=ia32
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
export arch:=intel64
else
export arch:=ia32
endif
endif
endif
endif
Expand Down
6 changes: 3 additions & 3 deletions make/compiler_flags
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ CXX_MINOR := $(word 2,$(subst ., ,$(CXX_VERSION)))
##

ifdef STAN_NO_RANGE_CHECKS
CXXFLAGS_THREADS ?= -DSTAN_NO_RANGE_CHECKS
CXXFLAGS_NO_RANGE_CHECKS ?= -DSTAN_NO_RANGE_CHECKS
endif

################################################################################
Expand Down Expand Up @@ -306,8 +306,8 @@ ifdef STAN_MPI
CXXFLAGS_MPI ?= -Wno-delete-non-virtual-dtor
endif

CXXFLAGS += $(CXXFLAGS_LANG) $(CXXFLAGS_OS) $(CXXFLAGS_WARNINGS) $(CXXFLAGS_BOOST) $(CXXFLAGS_EIGEN) $(CXXFLAGS_OPENCL) $(CXXFLAGS_MPI) $(CXXFLAGS_THREADS) $(CXXFLAGS_TBB) $(CXXFLAGS_FLTO) $(CXXFLAGS_OPTIM) -O$(O) $(INC)
CPPFLAGS += $(CPPFLAGS_LANG) $(CPPFLAGS_OS) $(CPPFLAGS_WARNINGS) $(CPPFLAGS_BOOST) $(CPPFLAGS_EIGEN) $(CPPFLAGS_OPENCL) $(CPPFLAGS_TBB) $(CPPFLAGS_MPI) $(CPPFLAGS_TBB) $(CPPFLAGS_FLTO) $(CPPFLAGS_OPTIM)
CXXFLAGS += $(CXXFLAGS_LANG) $(CXXFLAGS_OS) $(CXXFLAGS_WARNINGS) $(CXXFLAGS_BOOST) $(CXXFLAGS_EIGEN) $(CXXFLAGS_OPENCL) $(CXXFLAGS_MPI) $(CXXFLAGS_THREADS) $(CXXFLAGS_TBB) $(CXXFLAGS_FLTO) $(CXXFLAGS_OPTIM) $(CXXFLAGS_NO_RANGE_CHECKS) -O$(O) $(INC)
CPPFLAGS += $(CPPFLAGS_LANG) $(CPPFLAGS_OS) $(CPPFLAGS_WARNINGS) $(CPPFLAGS_BOOST) $(CPPFLAGS_EIGEN) $(CPPFLAGS_OPENCL) $(CPPFLAGS_TBB) $(CPPFLAGS_MPI) $(CPPFLAGS_TBB) $(CPPFLAGS_FLTO) $(CPPFLAGS_OPTIM) $(CXXFLAGS_NO_RANGE_CHECKS)
LDFLAGS += $(LDFLAGS_LANG) $(LDFLAGS_OS) $(LDFLAGS_WARNINGS) $(LDFLAGS_BOOST) $(LDFLAGS_EIGEN) $(LDFLAGS_OPENCL) $(LDFLAGS_MPI) $(LDFLAGS_TBB) $(LDFLAGS_FLTO) $(LDFLAGS_OPTIM)
LDLIBS += $(LDLIBS_LANG) $(LDLIBS_OS) $(LDLIBS_WARNINGS) $(LDLIBS_BOOST) $(LDLIBS_EIGEN) $(LDLIBS_OPENCL) $(LDLIBS_MPI) $(LDLIBS_TBB)

Expand Down
2 changes: 1 addition & 1 deletion make/tests
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ else
endif

%.hpp-test : %.hpp test/dummy.cpp
$(COMPILE.cpp) $(CXXFLAGS) -O0 -include $^ -o $(DEV_NULL)
$(COMPILE.cpp) $(CXXFLAGS) -O0 -include $^ -o $(DEV_NULL) -Wunused-local-typedefs

test/dummy.cpp:
@mkdir -p test
Expand Down
1 change: 0 additions & 1 deletion stan/math/fwd/fun/mdivide_left.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ template <typename T1, typename T2,
inline Eigen::Matrix<value_type_t<T2>, T1::RowsAtCompileTime,
T2::ColsAtCompileTime>
mdivide_left(const T1& A, const T2& b) {
using T = typename value_type_t<T2>::Scalar;
constexpr int S1 = T1::RowsAtCompileTime;
constexpr int C2 = T2::ColsAtCompileTime;

Expand Down
1 change: 0 additions & 1 deletion stan/math/fwd/fun/mdivide_left_tri_low.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ template <typename T1, typename T2, require_eigen_t<T1>* = nullptr,
inline Eigen::Matrix<value_type_t<T2>, T1::RowsAtCompileTime,
T2::ColsAtCompileTime>
mdivide_left_tri_low(const T1& A, const T2& b) {
using T = typename value_type_t<T2>::Scalar;
constexpr int S1 = T1::RowsAtCompileTime;
constexpr int C2 = T2::ColsAtCompileTime;

Expand Down
3 changes: 1 addition & 2 deletions stan/math/opencl/copy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ inline matrix_cl<scalar_type_t<T>> to_matrix_cl(T&& src) {
* @param src source matrix on the OpenCL device
* @return Eigen matrix with a copy of the data in the source matrix
*/
template <typename T_ret, typename T,
require_eigen_vt<std::is_arithmetic, T_ret>* = nullptr,
template <typename T_ret, typename T, require_eigen_t<T_ret>* = nullptr,
require_matrix_cl_t<T>* = nullptr,
require_st_same<T_ret, T>* = nullptr>
inline auto from_matrix_cl(const T& src) {
Expand Down
Loading

0 comments on commit 03de55a

Please sign in to comment.