Commit 8c93a0c9 authored by Bramas, Berenger (bbramas)'s avatar Bramas, Berenger (bbramas)

Merge branch 'update-ci-sde-archs' into 'master'

Update CI -- test with lots of archs using sde

Tests lots of archs for the CI.

This includes AVX (without AVX2) hardware for example.

See merge request !1
parents 0eafe444 6acf6e4d
......@@ -8,16 +8,6 @@ inastemp:
tags:
- default
inastempsde:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_USE_AVX512KNL=ON ..
- make
- make test
tags:
- sde
inastempclang:
script:
- mkdir build
......@@ -48,3 +38,83 @@ inastempgcc49:
- make test
tags:
- gcc49
inastempsdep4p:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-p4p" -DINASTEMP_ISDE_UTESTS_ARGS="-p4p" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdemrm:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-mrm" -DINASTEMP_ISDE_UTESTS_ARGS="-mrm" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdepnr:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-pnr" -DINASTEMP_ISDE_UTESTS_ARGS="-pnr" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdenhm:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-nhm" -DINASTEMP_ISDE_UTESTS_ARGS="-nhm" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdewsm:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-wsm" -DINASTEMP_ISDE_UTESTS_ARGS="-wsm" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdesnb:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-snb" -DINASTEMP_ISDE_UTESTS_ARGS="-snb" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdewsm:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-ivb" -DINASTEMP_ISDE_UTESTS_ARGS="-ivb" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
inastempsdehsw:
script:
- mkdir build
- cd build
- VERBOSE=1 cmake -DINASTEMP_ISDE_CPU=ON -DINASTEMP_ISDE_UTESTS=ON -DINASTEMP_ISDE_CPU_ARGS="-hsw" -DINASTEMP_ISDE_UTESTS_ARGS="-hsw" -DARCH_NATIVE_FLAG="" ..
- make
- make test
tags:
- sde
......@@ -98,9 +98,10 @@ foreach(TYPE ${ALL_TYPES})
set(${TYPE}_SUPPORTED_BY_CPU TRUE)
foreach(RULE ${${TYPE}_CPU_RULES})
if(NOT DEFINED CPU_INFO_${RULE})
MESSAGE(WARNING "Main -- The variable CPU_INFO_${RULE} is not defined but used as rule for ${TYPE}")
endif()
if(NOT ${CPU_INFO_${RULE}})
MESSAGE(WARNING "Main -- The variable CPU_INFO_${RULE} cannot be read from the current CPU which might be too old. It turns off ${TYPE}.")
set(${TYPE}_SUPPORTED_BY_CPU FALSE)
break()
elseif(NOT ${CPU_INFO_${RULE}})
set(${TYPE}_SUPPORTED_BY_CPU FALSE)
break()
endif()
......
......@@ -63,7 +63,7 @@ enum RegistersNum {
// GCC Inline Assembly but with the same prototype as windows
void cpuid(unsigned int CPUInfo[4],int InfoTypeEax, int InfoTypeEcx){
void cpuid(unsigned int CPUInfo[4],unsigned int InfoTypeEax, unsigned int InfoTypeEcx){
__asm__ __volatile__ (
"cpuid": // Execute this instruction
"=a" (CPUInfo[EaxRegister]), // Store eax in 0
......@@ -128,15 +128,15 @@ std::list<CpuProperty> getProperties(){
// Basic CPUID Information
cpuid(info, 0, 0);
// The largest CPUID standard-function input value supported by the processor implementation.
const int limitStandardFunction = info[EaxRegister];
const unsigned int limitStandardFunction = info[EaxRegister];
// Extended Function CPUID Information
cpuid(info, 0x80000000U, 0);
// The largest CPUID extended-function input value supported by the processor implementation
unsigned int limitExtendedFunction = info[EaxRegister];
const unsigned int limitExtendedFunction = info[EaxRegister];
// Detect Instruction Set
if (limitStandardFunction >= 1){
if (limitStandardFunction >= 0x1U){
cpuid(info,0x00000001U, 0); // Basic CPUID Information
/*
0x00000001 - EDX :
......@@ -244,7 +244,7 @@ std::list<CpuProperty> getProperties(){
properties.push_back(CpuProperty("FMA3", CPUInfoGetECX(info, 12)));
}
if (limitExtendedFunction >= 0x80000001U){
if (limitExtendedFunction >= 0x80000004U){
cpuid(info,0x80000001U, 0); // Extended Function CPUID Information
/*
0x80000001 - EDX :
......@@ -309,7 +309,7 @@ std::list<CpuProperty> getProperties(){
properties.push_back(CpuProperty("XOP", CPUInfoGetECX(info, 11)));
}
if (limitExtendedFunction >= 0x00000007U){
if (/*limitExtendedFunction >= 0x80000008U*/ limitStandardFunction > 0x6U){
cpuid(info,0x00000007U, 0); // Extended Function CPUID Information
/*
0x00000007 - EBX
......
......@@ -274,7 +274,7 @@ void HandVectorizedFunctionSSE3(const size_t nbParticles, const double* __restri
const __m128d distance = _mm_sqrt_pd(dx*dx + dy*dy + dz*dz);
const __m128d inv_distance = VecOne/distance;
const __m128d testRes = _mm_cmp_pd(distance, VecCutDistance, _CMP_LT_OQ);
const __m128d testRes = _mm_cmplt_pd(distance, VecCutDistance);
const __m128d sourcesPhysicalValue = _mm_loadu_pd(&physicalValues[idxSource]);
......@@ -340,7 +340,7 @@ void HandVectorizedFunctionSSE3(const size_t nbParticles, const float* __restric
const __m128 distance = _mm_sqrt_ps(dx*dx + dy*dy + dz*dz);
const __m128 inv_distance = VecOne/distance;
const __m128 testRes = _mm_cmp_ps(distance, VecCutDistance, _CMP_LT_OQ);
const __m128 testRes = _mm_cmplt_ps(distance, VecCutDistance);
const __m128 sourcesPhysicalValue = _mm_loadu_ps(&physicalValues[idxSource]);
......
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