I am trying to add new benchmarks on uPIMulator but I've encountered some issues.
1.Do we still need to write host-side code for the new benchmarks?
2.How can we avoid generating DPU-side code with instructions that you haven't implemented? For example, what code should we avoid writing, or how should we modify DPU side code after unimplemented instructions show up?
No, you don't need to write host-side code for simulation. However, you have to prepare input/output data to the device-side code.
Sorry, we don't have an answer for this question since we used UPMEM's compiler as-is. That means, we didn't implement the compiler. But we found that the compiler only generates a handful of instructions that we can simulate with uPIMulator. As a general rule of thumb, if you don't use int64, uint64, float, or double data types, those unimplemented instructions won't be generated. If the simulator encounters unimplemented instructions, it will crash. We are currently working on extending uPIMulator so it can simulate the complete UPMEM ISA.
I hope this can answer your question, and if you have further questions, please don't hesitate to reach out to us.
I am trying to add new benchmarks on uPIMulator but I've encountered some issues.
1.Do we still need to write host-side code for the new benchmarks? 2.How can we avoid generating DPU-side code with instructions that you haven't implemented? For example, what code should we avoid writing, or how should we modify DPU side code after unimplemented instructions show up?
Thank you!