Unter Verwendung von Float16 (halb-Präzisions-Float-Typ) unter Verwendung von Seileinbettungsgebieten (Seileinbettung) d
Posted: 28 Feb 2025, 02:52
i codierte das Implementierung des Seils Float16 (halbprediger Float-Typ) (fusionierte Rotationspositionseinbettung), um die Genauigkeit von CPU und GPU (NVIDIA Geforce 3080) zu vergleichen. Und die Ergebnisgenauigkeit erfüllt nicht die 1E-5 absolute Fehler und 1E-3 relative Fehler. Ich wusste nicht, warum dies passiert ist.
Code: Select all
#include
#include
#include
#include
#include
#include
#include
#define CUDA_CHECK(err) (check_cuda(err, __FILE__, __LINE__))
#ifndef float16
#define float16 half
#endif
void check_cuda(cudaError_t error, const char* file, int line) {
if (error != cudaSuccess) {
std::cout 1e-3) {
++count_relative_err;
if (rel_err > max_rel) {
max_rel = rel_err;
max_rel_s = s;
max_rel_b = b;
max_rel_h = h;
max_rel_d = d;
}
}
}
}
}
}
// std::cout output format
std::cout