zfhmin microbenchmark
This commit is contained in:
commit
78c603144e
1 changed files with 57 additions and 0 deletions
57
zfhmin_micro/zfhmin.c
Normal file
57
zfhmin_micro/zfhmin.c
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define N 10
|
||||
|
||||
static inline uint64_t read_cycles() {
|
||||
uint64_t start;
|
||||
asm volatile ("rdcycle %0" : "=r"(start));
|
||||
return start;
|
||||
}
|
||||
|
||||
int main() {
|
||||
// fcvt.s.h
|
||||
|
||||
volatile float b;
|
||||
volatile _Float16 d;
|
||||
volatile double e;
|
||||
volatile _Float16 g;
|
||||
|
||||
volatile _Float16 a = 3.0f;
|
||||
|
||||
read_cycles();
|
||||
for (int i = 0; i < N; i++) {
|
||||
b = (float) a;
|
||||
}
|
||||
read_cycles();
|
||||
|
||||
// fcvt.h.s
|
||||
|
||||
volatile float c = 3.0f;
|
||||
|
||||
read_cycles();
|
||||
for (int i = 0; i < N; i++) {
|
||||
d = (_Float16) c;
|
||||
}
|
||||
read_cycles();
|
||||
|
||||
// fcvt.d.h
|
||||
|
||||
read_cycles();
|
||||
for (int i = 0; i < N; i++) {
|
||||
double e = (double) a;
|
||||
}
|
||||
read_cycles();
|
||||
|
||||
// fcvt.h.d
|
||||
|
||||
volatile double f = 3.0f;
|
||||
|
||||
read_cycles();
|
||||
for (int i = 0; i < N; i++) {
|
||||
g = (_Float16) f;
|
||||
}
|
||||
read_cycles();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue