Merge pull request #4164 from martin-frbg/issue4162
Enable use of AVX512 microkernels with NVIDIA HPC from version 22.3
This commit is contained in:
		
						commit
						09131f79a6
					
				|  | @ -1,5 +1,10 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if ((( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2309)) | ||||||
|  | 
 | ||||||
|  | #if (!(defined(__NVCOMPILER) && NVCOMPVERS < 2309)) | ||||||
| 
 | 
 | ||||||
| #define HAVE_CASUM_KERNEL 1 | #define HAVE_CASUM_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  | @ -347,3 +352,4 @@ static FLOAT casum_kernel(BLASLONG n, FLOAT *x) | ||||||
|     return sumf; |     return sumf; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,7 @@ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 ) || (defined(__clang__) && __clang_major__ >= 6)) && defined(__AVX2__) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6) || (defined(__clang__) && __clang_major__ >= 6)) && defined(__AVX2__) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_DASUM_KERNEL | #define HAVE_DASUM_KERNEL | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,8 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_DASUM_KERNEL 1 | #define HAVE_DASUM_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,7 +27,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || ( defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_KERNEL_8 1 | #define HAVE_KERNEL_8 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,7 +24,10 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||||||
| USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -24,7 +24,10 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||||||
| USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_KERNEL_4x4 1 | #define HAVE_KERNEL_4x4 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,8 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_DROT_KERNEL 1 | #define HAVE_DROT_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,7 +27,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_TOBF16_ACCL_KERNEL 1 | #define HAVE_TOBF16_ACCL_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -1,4 +1,7 @@ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 ) || (defined(__clang__) && __clang_major__ >= 6)) && defined(__AVX2__) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SASUM_KERNEL 1 | #define HAVE_SASUM_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,8 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SASUM_KERNEL 1 | #define HAVE_SASUM_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_KERNEL_16 1 | #define HAVE_KERNEL_16 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SBDOT_ACCL_KERNEL 1 | #define HAVE_SBDOT_ACCL_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SBGEMV_N_ACCL_KERNEL 1 | #define HAVE_SBGEMV_N_ACCL_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SBGEMV_T_ACCL_KERNEL 1 | #define HAVE_SBGEMV_T_ACCL_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_KERNEL_16 1 | #define HAVE_KERNEL_16 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,7 +24,11 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||||||
| USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -24,7 +24,11 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||||
| OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE | ||||||
| USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -26,7 +26,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && __NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #define HAVE_SGEMV_N_SKYLAKE_KERNEL 1 | #define HAVE_SGEMV_N_SKYLAKE_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -26,7 +26,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SGEMV_T_SKYLAKE_KERNEL 1 | #define HAVE_SGEMV_T_SKYLAKE_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -1,5 +1,8 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
| 
 | 
 | ||||||
| #define HAVE_SROT_KERNEL 1 | #define HAVE_SROT_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   >= 10 && defined(__AVX512BF16__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #define HAVE_TOBF16_ACCL_KERNEL 1 | #define HAVE_TOBF16_ACCL_KERNEL 1 | ||||||
| #include "common.h" | #include "common.h" | ||||||
|  |  | ||||||
|  | @ -1,5 +1,10 @@ | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if ((( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX512CD__)) || (defined(__clang__) && __clang_major__ >= 9)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2309)) | ||||||
|  | 
 | ||||||
|  | #if (!(defined(__NVCOMPILER) && NVCOMPVERS < 2309)) | ||||||
| 
 | 
 | ||||||
| #define HAVE_ZASUM_KERNEL 1 | #define HAVE_ZASUM_KERNEL 1 | ||||||
| 
 | 
 | ||||||
|  | @ -338,3 +343,4 @@ static FLOAT zasum_kernel(BLASLONG n, FLOAT *x) | ||||||
|     return sumf; |     return sumf; | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @ -26,7 +26,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
| *****************************************************************************/ | *****************************************************************************/ | ||||||
| 
 | 
 | ||||||
| /* need a new enough GCC for avx512 support */ | /* need a new enough GCC for avx512 support */ | ||||||
| #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) | #ifdef __NVCOMPILER | ||||||
|  | #define NVCOMPVERS ( __NVCOMPILER_MAJOR__ * 100 + __NVCOMPILER_MINOR__ ) | ||||||
|  | #endif | ||||||
|  | #if (( defined(__GNUC__)  && __GNUC__   > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6)) || (defined(__NVCOMPILER) && NVCOMPVERS >= 2203 ) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| #include <immintrin.h> | #include <immintrin.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue