Re: [gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?

2019-09-12 Thread Szilárd Páll
On Thu, Sep 12, 2019 at 9:29 AM Tatsuro MATSUOKA  wrote:
>
> >Those are kernels for legacy code that never use such simd anywhere
> Doy you mean that gmxSimdFlags.cmake is not used for simd detection ?

gmxSimdFlags.cmake detects the _flags_ necessary for a SIMD build. It
is gmxDetectSimd.cmake / gmxDetectCpu.cmake that do the CPU detection.

All CPU/SIMD detection is orchestrated from gmxManageSimd.cmake where,
first the target SIMD is detected here:
https://redmine.gromacs.org/projects/gromacs/repository/revisions/master/entry/cmake/gmxManageSimd.cmake#L89
then the corresponding require compiler flags are detected.

Let us know if you have further questions!

Cheers,
--
Szilárd

>
> Tatsuro
>
>
>
> - Original Message -
> >From: Mark Abraham 
> >To: Discussion list for GROMACS users ; Tatsuro 
> >MATSUOKA 
> >Date: 2019/9/12, Thu 14:39
> >Subject: Re: [gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?
> >
> >
> >Hi,
> >
> >
> >Those are kernels for legacy code that never use such simd anywhere
> >
> >
> >Mark
> >
> >On Thu., 12 Sep. 2019, 07:16 Tatsuro MATSUOKA,  
> >wrote:
> >
> >On GROMACS 2019.3, GROMACS cannot be built with AVX2.
> >>
> >>In gmxSimdFlags.cmake
> >>
> >>SIMD_AVX2_C_FLAGS SIMD_AVX2_CXX_FLAGS
> >>"${TOOLCHAIN_FLAG_FOR_AVX2}" "-mavx2" "/arch:AVX" "-hgnu") # no 
> >> AVX2-specific flag for MSVC yet
> >>
> >>If I modify the above, "/arch:AVX" => "/arch:AVX" ,
> >>
> >>-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
> >>-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Failed
> >>-- Performing Test C_mavx2_FLAG_ACCEPTED
> >>-- Performing Test C_mavx2_FLAG_ACCEPTED - Failed
> >>-- Performing Test C_arch_AVX2_FLAG_ACCEPTED
> >>-- Performing Test C_arch_AVX2_FLAG_ACCEPTED - Success
> >>-- Performing Test C_arch_AVX2_COMPILE_WORKS
> >>-- Performing Test C_arch_AVX2_COMPILE_WORKS - Success
> >>-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
> >>-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Failed
> >>-- Performing Test CXX_mavx2_FLAG_ACCEPTED
> >>-- Performing Test CXX_mavx2_FLAG_ACCEPTED - Failed
> >>-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED
> >>-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED - Success
> >>-- Performing Test CXX_arch_AVX2_COMPILE_WORKS
> >>-- Performing Test CXX_arch_AVX2_COMPILE_WORKS - Success
> >>-- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  /arch:AVX2
> >>
> >>
> >>But avx components
> >>
> >> nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwCSTab_GeomW3W3_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwCSTab_GeomW4W4_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_avx_256_single.cpp
> >> nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_avx_256_single.cpp
> >>are complied.
> >>
> >>How can I compile "avx2_256" files?
> >>
> >>Tatsuro
> >>
> >>--
> >>Gromacs Users mailing list
> >>
> >>* Please search the archive at 
> >>http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
> >>
> >>* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> >>
> >>* For (un)subscribe requests visit
> >>https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send 
> >>a mail to gmx-users-requ...@gromacs.org.
> >
> >
>
> --
> Gromacs Users mailing list
>
> * Please search the archive at 
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
> mail to gmx-users-requ...@gromacs.org.
-- 
Gromacs Users mailing list

* Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!

* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

* For (un)subscribe requests visit
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
mail to gmx-users-requ...@gromacs.org.

Re: [gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?

2019-09-12 Thread Tatsuro MATSUOKA
>Those are kernels for legacy code that never use such simd anywhere
Doy you mean that gmxSimdFlags.cmake is not used for simd detection ?

Tatsuro



- Original Message -
>From: Mark Abraham 
>To: Discussion list for GROMACS users ; Tatsuro 
>MATSUOKA  
>Date: 2019/9/12, Thu 14:39
>Subject: Re: [gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?
> 
>
>Hi,
>
>
>Those are kernels for legacy code that never use such simd anywhere
>
>
>Mark
>
>On Thu., 12 Sep. 2019, 07:16 Tatsuro MATSUOKA,  wrote:
>
>On GROMACS 2019.3, GROMACS cannot be built with AVX2.
>>
>>In gmxSimdFlags.cmake
>>
>>    SIMD_AVX2_C_FLAGS SIMD_AVX2_CXX_FLAGS
>>    "${TOOLCHAIN_FLAG_FOR_AVX2}" "-mavx2" "/arch:AVX" "-hgnu") # no 
>>AVX2-specific flag for MSVC yet
>>
>>If I modify the above, "/arch:AVX" => "/arch:AVX" ,
>>
>>-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
>>-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Failed
>>-- Performing Test C_mavx2_FLAG_ACCEPTED
>>-- Performing Test C_mavx2_FLAG_ACCEPTED - Failed
>>-- Performing Test C_arch_AVX2_FLAG_ACCEPTED
>>-- Performing Test C_arch_AVX2_FLAG_ACCEPTED - Success
>>-- Performing Test C_arch_AVX2_COMPILE_WORKS
>>-- Performing Test C_arch_AVX2_COMPILE_WORKS - Success
>>-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
>>-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Failed
>>-- Performing Test CXX_mavx2_FLAG_ACCEPTED
>>-- Performing Test CXX_mavx2_FLAG_ACCEPTED - Failed
>>-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED
>>-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED - Success
>>-- Performing Test CXX_arch_AVX2_COMPILE_WORKS
>>-- Performing Test CXX_arch_AVX2_COMPILE_WORKS - Success
>>-- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  /arch:AVX2
>>
>>
>>But avx components 
>>
>> nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwCSTab_GeomW3W3_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwCSTab_GeomW4W4_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_avx_256_single.cpp
>> nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_avx_256_single.cpp
>>are complied.
>>
>>How can I compile "avx2_256" files?
>>
>>Tatsuro
>>
>>-- 
>>Gromacs Users mailing list
>>
>>* Please search the archive at 
>>http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!
>>
>>* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>>
>>* For (un)subscribe requests visit
>>https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
>>mail to gmx-users-requ...@gromacs.org.
>
>

-- 
Gromacs Users mailing list

* Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!

* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

* For (un)subscribe requests visit
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
mail to gmx-users-requ...@gromacs.org.

Re: [gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?

2019-09-11 Thread Mark Abraham
Hi,

Those are kernels for legacy code that never use such simd anywhere

Mark

On Thu., 12 Sep. 2019, 07:16 Tatsuro MATSUOKA, 
wrote:

> On GROMACS 2019.3, GROMACS cannot be built with AVX2.
>
> In gmxSimdFlags.cmake
>
> SIMD_AVX2_C_FLAGS SIMD_AVX2_CXX_FLAGS
> "${TOOLCHAIN_FLAG_FOR_AVX2}" "-mavx2" "/arch:AVX" "-hgnu") # no
> AVX2-specific flag for MSVC yet
>
> If I modify the above, "/arch:AVX" => "/arch:AVX" ,
>
> -- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
> -- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Failed
> -- Performing Test C_mavx2_FLAG_ACCEPTED
> -- Performing Test C_mavx2_FLAG_ACCEPTED - Failed
> -- Performing Test C_arch_AVX2_FLAG_ACCEPTED
> -- Performing Test C_arch_AVX2_FLAG_ACCEPTED - Success
> -- Performing Test C_arch_AVX2_COMPILE_WORKS
> -- Performing Test C_arch_AVX2_COMPILE_WORKS - Success
> -- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
> -- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Failed
> -- Performing Test CXX_mavx2_FLAG_ACCEPTED
> -- Performing Test CXX_mavx2_FLAG_ACCEPTED - Failed
> -- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED
> -- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED - Success
> -- Performing Test CXX_arch_AVX2_COMPILE_WORKS
> -- Performing Test CXX_arch_AVX2_COMPILE_WORKS - Success
> -- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  /arch:AVX2
>
>
> But avx components
>
>  nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwCSTab_GeomW3W3_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwCSTab_GeomW4W4_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_avx_256_single.cpp
>  nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_avx_256_single.cpp
> are complied.
>
> How can I compile "avx2_256" files?
>
> Tatsuro
>
> --
> Gromacs Users mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> send a mail to gmx-users-requ...@gromacs.org.
-- 
Gromacs Users mailing list

* Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!

* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

* For (un)subscribe requests visit
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
mail to gmx-users-requ...@gromacs.org.


[gmx-users] How can Build gromacs using MSVC on Win64 with AVX2?

2019-09-11 Thread Tatsuro MATSUOKA
On GROMACS 2019.3, GROMACS cannot be built with AVX2.

In gmxSimdFlags.cmake

    SIMD_AVX2_C_FLAGS SIMD_AVX2_CXX_FLAGS
    "${TOOLCHAIN_FLAG_FOR_AVX2}" "-mavx2" "/arch:AVX" "-hgnu") # no 
AVX2-specific flag for MSVC yet

If I modify the above, "/arch:AVX" => "/arch:AVX" ,

-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Failed
-- Performing Test C_mavx2_FLAG_ACCEPTED
-- Performing Test C_mavx2_FLAG_ACCEPTED - Failed
-- Performing Test C_arch_AVX2_FLAG_ACCEPTED
-- Performing Test C_arch_AVX2_FLAG_ACCEPTED - Success
-- Performing Test C_arch_AVX2_COMPILE_WORKS
-- Performing Test C_arch_AVX2_COMPILE_WORKS - Success
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Failed
-- Performing Test CXX_mavx2_FLAG_ACCEPTED
-- Performing Test CXX_mavx2_FLAG_ACCEPTED - Failed
-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED
-- Performing Test CXX_arch_AVX2_FLAG_ACCEPTED - Success
-- Performing Test CXX_arch_AVX2_COMPILE_WORKS
-- Performing Test CXX_arch_AVX2_COMPILE_WORKS - Success
-- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  /arch:AVX2


But avx components 

 nb_kernel_ElecCSTab_VdwCSTab_GeomP1P1_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwCSTab_GeomW3P1_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwCSTab_GeomW3W3_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwCSTab_GeomW4P1_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwCSTab_GeomW4W4_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwLJ_GeomP1P1_avx_256_single.cpp
 nb_kernel_ElecCSTab_VdwLJ_GeomW3P1_avx_256_single.cpp
are complied.

How can I compile "avx2_256" files?

Tatsuro

-- 
Gromacs Users mailing list

* Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before posting!

* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

* For (un)subscribe requests visit
https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or send a 
mail to gmx-users-requ...@gromacs.org.