[SYCL-2020] Enabling half precision support for SYCL.

This commit is contained in:
Alejandro Acosta
2023-04-27 14:01:11 +01:00
committed by Alejandro Acosta
parent 92a77a596b
commit ba47341a14
23 changed files with 873 additions and 28 deletions

View File

@@ -1118,7 +1118,7 @@ struct GeneralVectorTensor {
: globalContractDimOffset + privateOffsetC)
: OutScalar(0);
outScalar[j] = cl::sycl::mad(matScalar, vecScalar, outScalar[j]);
outScalar[j] = ::Eigen::internal::pmadd(matScalar, vecScalar, outScalar[j]);
privateOffsetNC += Properties::LocalThreadSizeNC;
}
privateOffsetC += Properties::LocalThreadSizeC;
@@ -1263,7 +1263,7 @@ struct GeneralScalarContraction {
StorageIndex localid = itemID.get_local_id(0);
OutScalar accumulator = OutScalar(0);
for (StorageIndex i = globalid; i < rng; i += itemID.get_global_range(0)) {
accumulator = cl::sycl::mad(lhs(0, i), rhs(i, 0), accumulator);
accumulator = Eigen::internal::pmadd(lhs(0, i), rhs(i, 0), accumulator);
}
auto out_scratch_ptr = scratch_ptr + localid;
*out_scratch_ptr = accumulator;