"docs/en_US/git@developer.sourcefind.cn:OpenDAS/nni.git" did not exist on "8c6a64070e6d5d56bec4cdf660234f6b9992575a"
Commit b56c8be0 authored by Paul's avatar Paul
Browse files

Merge branch 'gcc7'

parents e36567a3 8dc27e17
...@@ -6,9 +6,12 @@ ARG PREFIX=/usr/local ...@@ -6,9 +6,12 @@ ARG PREFIX=/usr/local
RUN dpkg --add-architecture i386 RUN dpkg --add-architecture i386
# Add rocm repository # Add rocm repository
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl apt-utils wget RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl apt-utils wget software-properties-common
RUN curl https://raw.githubusercontent.com/RadeonOpenCompute/ROCm-docker/master/add-rocm.sh | bash RUN curl https://raw.githubusercontent.com/RadeonOpenCompute/ROCm-docker/master/add-rocm.sh | bash
# Add ubuntu toolchain
RUN apt-get update && add-apt-repository ppa:ubuntu-toolchain-r/test -y
# Install dependencies # Install dependencies
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated \ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-unauthenticated \
apt-utils \ apt-utils \
...@@ -19,6 +22,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow- ...@@ -19,6 +22,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-
cmake \ cmake \
curl \ curl \
doxygen \ doxygen \
g++-7 \
gdb \ gdb \
git \ git \
hsa-rocr-dev \ hsa-rocr-dev \
...@@ -26,14 +30,14 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow- ...@@ -26,14 +30,14 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --allow-
lcov \ lcov \
libelf-dev \ libelf-dev \
libncurses5-dev \ libncurses5-dev \
libpthread-stubs0-dev \
libnuma-dev \ libnuma-dev \
libpthread-stubs0-dev \
python \ python \
python-dev \ python-dev \
python-pip \ python-pip \
rocminfo \
rocm-opencl \ rocm-opencl \
rocm-opencl-dev \ rocm-opencl-dev \
rocminfo \
software-properties-common \ software-properties-common \
wget && \ wget && \
apt-get clean && \ apt-get clean && \
......
...@@ -3,10 +3,11 @@ def rocmtestnode(variant, name, body) { ...@@ -3,10 +3,11 @@ def rocmtestnode(variant, name, body) {
def image = 'migraphlib' def image = 'migraphlib'
def cmake_build = { compiler, flags -> def cmake_build = { compiler, flags ->
def cmd = """ def cmd = """
ulimit -c unlimited
rm -rf build rm -rf build
mkdir build mkdir build
cd build cd build
CXX=${compiler} CXXFLAGS='-Werror -Wno-fallback' cmake -DCMAKE_CXX_FLAGS_DEBUG='-g -fno-omit-frame-pointer -fsanitize=undefined -fno-sanitize-recover=undefined' ${flags} .. CXX=${compiler} CXXFLAGS='-Werror -Wno-fallback' cmake ${flags} ..
CTEST_PARALLEL_LEVEL=32 make -j32 all doc check CTEST_PARALLEL_LEVEL=32 make -j32 all doc check
""" """
echo cmd echo cmd
...@@ -92,16 +93,26 @@ rocmtest tidy: rocmnode('rocmtest') { cmake_build -> ...@@ -92,16 +93,26 @@ rocmtest tidy: rocmnode('rocmtest') { cmake_build ->
} }
}, clang: rocmnode('rocmtest') { cmake_build -> }, clang: rocmnode('rocmtest') { cmake_build ->
stage('Clang Debug') { stage('Clang Debug') {
cmake_build('hcc', '-DCMAKE_BUILD_TYPE=debug') // TODO: Enanle integer
def sanitizers = "undefined"
cmake_build("hcc", "-DCMAKE_BUILD_TYPE=debug -DCMAKE_CXX_FLAGS_DEBUG='-g -fno-omit-frame-pointer -fsanitize=${sanitizers} -fno-sanitize-recover=${sanitizers}'")
} }
stage('Clang Release') { stage('Clang Release') {
cmake_build('hcc', '-DCMAKE_BUILD_TYPE=release') cmake_build("hcc", "-DCMAKE_BUILD_TYPE=release")
} }
}, gcc: rocmnode('rocmtest') { cmake_build -> }, gcc5: rocmnode('rocmtest') { cmake_build ->
stage('GCC Debug') { stage('GCC 5 Debug') {
cmake_build('g++-5', '-DCMAKE_BUILD_TYPE=debug') cmake_build("g++-5", "-DCMAKE_BUILD_TYPE=debug")
} }
stage('GCC Release') { stage('GCC 5 Release') {
cmake_build('g++-5', '-DCMAKE_BUILD_TYPE=release') cmake_build("g++-5", "-DCMAKE_BUILD_TYPE=release")
}
}, gcc7: rocmnode('rocmtest') { cmake_build ->
stage('GCC 7 Debug') {
def linker_flags = '-fuse-ld=gold'
def cmake_linker_flags = "-DCMAKE_EXE_LINKER_FLAGS='${linker_flags}' -DCMAKE_SHARED_LINKER_FLAGS='${linker_flags}'"
// TODO: Add bounds-strict
def sanitizers = "undefined,address"
cmake_build("g++-7", "-DCMAKE_BUILD_TYPE=debug ${cmake_linker_flags} -DCMAKE_CXX_FLAGS_DEBUG='-g -fno-omit-frame-pointer -fsanitize-address-use-after-scope -fsanitize=${sanitizers} -fno-sanitize-recover=${sanitizers}'")
} }
} }
...@@ -68,6 +68,19 @@ else() ...@@ -68,6 +68,19 @@ else()
-Wno-sign-compare -Wno-sign-compare
) )
# Flags for gcc 7
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.0")
list(APPEND CMAKE_COMPILER_WARNINGS
-Wduplicated-branches
-Wduplicated-cond
-Wno-noexcept-type
-Wodr
-Wshift-negative-value
-Wshift-overflow=2
)
endif()
endif()
if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang") if (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang")
list(APPEND CMAKE_COMPILER_WARNINGS list(APPEND CMAKE_COMPILER_WARNINGS
-Weverything -Weverything
......
...@@ -87,8 +87,8 @@ struct literal : raw_data<literal> ...@@ -87,8 +87,8 @@ struct literal : raw_data<literal>
m_shape.visit_type([&](auto as) { m_shape.visit_type([&](auto as) {
auto output = make_view(m_shape, as.from(buffer.get())); auto output = make_view(m_shape, as.from(buffer.get()));
shape_for_each(output.get_shape(), [&](const auto& idx) { shape_for_each(output.get_shape(), [&](const auto& idx) {
it++;
output(idx.begin(), idx.end()) = *it; output(idx.begin(), idx.end()) = *it;
it++;
}); });
}); });
} }
......
...@@ -898,7 +898,7 @@ void contiguous_test() ...@@ -898,7 +898,7 @@ void contiguous_test()
result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); }); result.visit([&](auto output) { results_vector.assign(output.begin(), output.end()); });
std::vector<size_t> new_lens = {1, 3, 2, 2}; std::vector<size_t> new_lens = {1, 3, 2, 2};
std::vector<size_t> new_strides = {12, 1, 6, 3}; std::vector<size_t> new_strides = {12, 1, 6, 3};
std::vector<float> gold = {1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 0}; std::vector<float> gold = {0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11};
EXPECT(migraph::verify_range(results_vector, gold)); EXPECT(migraph::verify_range(results_vector, gold));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment