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