mirror of
https://github.com/marian-nmt/marian.git
synced 2024-09-11 06:15:56 +03:00
update the intgemm version to upstream (#924)
Some data types got upper cased, that's why there is a larger diff than expected Co-authored-by: Roman Grundkiewicz <rgrundkiewicz@gmail.com>
This commit is contained in:
parent
b8bf086b10
commit
8a9580b329
@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||
- Make guided-alignment faster via sparse memory layout, add alignment points for EOS, remove losses other than ce.
|
||||
- Changed minimal C++ standard to C++-17
|
||||
- Faster LSH top-k search on CPU
|
||||
- Updated intgemm to the latest upstream version
|
||||
|
||||
## [1.11.0] - 2022-02-08
|
||||
|
||||
|
2
src/3rd_party/intgemm
vendored
2
src/3rd_party/intgemm
vendored
@ -1 +1 @@
|
||||
Subproject commit 8abde25b13c3ab210c0dec8e23f4944e3953812d
|
||||
Subproject commit a05a2e51ab524bcee954a39ee72005193f3adf7c
|
@ -172,19 +172,19 @@ public:
|
||||
// Hardware-specific conversions which allow to implement memory-mapping and avoid conversion at runtime
|
||||
cpu::integer::passOrAbort(gemmElementType); // Check if the hardware supports the GEMM type
|
||||
if(isSsse3(gemmElementType)) {
|
||||
intgemm::ssse3::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::SSSE3::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int8_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
cols(val));
|
||||
} else if(isAvx2(gemmElementType)) {
|
||||
intgemm::avx2::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::AVX2::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int8_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
cols(val));
|
||||
} else if(isAvx512(gemmElementType)) {
|
||||
intgemm::avx512bw::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::AVX512BW::Kernels8::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int8_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
@ -206,19 +206,19 @@ public:
|
||||
// Hardware-specific conversions which allow to implement memory-mapping and avoid conversion at runtime
|
||||
cpu::integer::passOrAbort(gemmElementType); // Check if the hardware supports the GEMM type
|
||||
if(isSse2(gemmElementType)) {
|
||||
intgemm::sse2::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::SSE2::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int16_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
cols(val));
|
||||
} else if(isAvx2(gemmElementType)) {
|
||||
intgemm::avx2::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::AVX2::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int16_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
cols(val));
|
||||
} else if(isAvx512(gemmElementType)) {
|
||||
intgemm::avx512bw::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
intgemm::AVX512BW::Kernels16::PrepareBTransposed(tmp->data(), /*input*/
|
||||
paramMat->data<int16_t>(), /*output*/
|
||||
quantMult, /*Quant Mult*/
|
||||
rows(val),
|
||||
|
@ -11,21 +11,21 @@
|
||||
namespace intgemm {
|
||||
struct Int8;
|
||||
struct Int16;
|
||||
namespace ssse3 {
|
||||
namespace SSSE3 {
|
||||
struct Kernels8;
|
||||
}
|
||||
namespace sse2 {
|
||||
namespace SSE2 {
|
||||
struct Kernels16;
|
||||
}
|
||||
namespace avx2 {
|
||||
namespace AVX2 {
|
||||
struct Kernels8;
|
||||
struct Kernels16;
|
||||
}
|
||||
namespace avx512bw {
|
||||
namespace AVX512BW {
|
||||
struct Kernels8;
|
||||
struct Kernels16;
|
||||
}
|
||||
namespace avx512vnni {
|
||||
namespace AVX512VNNI {
|
||||
struct Kernels8;
|
||||
}
|
||||
}
|
||||
@ -57,22 +57,22 @@ template <> struct intgemm_<Type::intgemm8> {
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm8ssse3> {
|
||||
using width = intgemm::ssse3::Kernels8;
|
||||
using width = intgemm::SSSE3::Kernels8;
|
||||
using type = int8_t;
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm8avx2> {
|
||||
using width = intgemm::avx2::Kernels8;
|
||||
using width = intgemm::AVX2::Kernels8;
|
||||
using type = int8_t;
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm8avx512> {
|
||||
using width = intgemm::avx512bw::Kernels8;
|
||||
using width = intgemm::AVX512BW::Kernels8;
|
||||
using type = int8_t;
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm8avx512vnni> {
|
||||
using width = intgemm::avx512vnni::Kernels8;
|
||||
using width = intgemm::AVX512VNNI::Kernels8;
|
||||
using type = int8_t;
|
||||
};
|
||||
|
||||
@ -82,17 +82,17 @@ template <> struct intgemm_<Type::intgemm16> {
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm16sse2> {
|
||||
using width = intgemm::sse2::Kernels16;
|
||||
using width = intgemm::SSE2::Kernels16;
|
||||
using type = int16_t;
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm16avx2> {
|
||||
using width = intgemm::avx2::Kernels16;
|
||||
using width = intgemm::AVX2::Kernels16;
|
||||
using type = int16_t;
|
||||
};
|
||||
|
||||
template <> struct intgemm_<Type::intgemm16avx512> {
|
||||
using width = intgemm::avx512bw::Kernels16;
|
||||
using width = intgemm::AVX512BW::Kernels16;
|
||||
using type = int16_t;
|
||||
};
|
||||
|
||||
@ -220,4 +220,4 @@ void prepareAndTransposeB(io::Item& item, const char * input) {
|
||||
|
||||
} //integer
|
||||
} //cpu
|
||||
} //marian
|
||||
} //marian
|
||||
|
Loading…
Reference in New Issue
Block a user