uwsampa / accept

an approximate compiler
http://accept.rocks
MIT License
37 stars 14 forks source link

EnerJ #54

Open Jaefromkorea opened 5 years ago

Jaefromkorea commented 5 years ago

HIi Adrian,

Now I am able to produce executable file for all the benchmark.

I have a question with EnerJ.

I have read document about (https://bitbucket.org/adrian/enerj/src/9b49e10b9a8687c57bec6991e38f0895b9635959/README.md?at=default&fileviewer=file-view-default)

In enerJ i could simply change bit width of floating point with " passing -noisy to enerj to enable error injection in a simulated approximate program."

I was wondering is it possible to customize the floating point bit width??

the other question is that I do not quite understand how to inject error in accept compiler..

Could you please help me?

sampsyo commented 5 years ago

Great! What was the solution?

There is no built-in bit width reduction optimization. (You're welcome to build one yourself, of course!) I tried doing that a few times for ACCEPT, but here my goal was to get performance benefits on real, commodity hardware. To do that with bit width reduction, you need to save memory and bandwidth---which means you need to, for example, take a double array and make it take the same space as if it were declared as a float array. It's super hard to do that in a way that preserves pointer arithmetic! That's what makes this so much harder in C than in a memory-safe language like Java, for example.

Jaefromkorea commented 5 years ago

I have very simple question. I am not really expert in approximate computing. there are a lot of technique for floating point approximate computing. How does exactly it work if you put appox float in Accpet compiler? Thank you very much

sampsyo commented 5 years ago

Hi! This is actually a deceptively complex question. It's essentially the question that our paper seeks to answer. Have you read the ACCEPT techincal report that's linked from the documentation?