Unter Verwendung von Float16 (halb-Präzisions-Float-Typ) [geschlossen]C++

Programme in C++. Entwicklerforum
Anonymous
 Unter Verwendung von Float16 (halb-Präzisions-Float-Typ) [geschlossen]

Post by Anonymous »

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 habe nicht gewusst, warum dies geschah.

Code: Select all

Mismatch element size: 38176/262144(14.562988281%)
Max absolute error: 0.000976562 at [0,0,1,37]   cpu = -1.119140625  gpu = -1.118164062
Max relative error: 1.000000000 at [9,0,4,58]   cpu = 0.000000000  gpu = -0.000068426
< /code>
Wir können feststellen, dass der absolute Fehler> 1E-5 und der relative Fehler> 1E-3.#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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post