microsoft / antares

Antares: an automatic engine for multi-platform kernel generation and optimization. Supporting CPU, CUDA, ROCm, DirectX12, GraphCore, SYCL for CPU/GPU, OpenCL for AMD/NVIDIA, Android CPU/GPU backends.
Other
435 stars 45 forks source link

Does one need access to the target HW? #309

Open roman955b opened 2 years ago

roman955b commented 2 years ago

In order to use Antares, does one need to have access to the target HW or is it enough to fill in one of those cfg files? What is required by the targeted HW if one wants to optimize for it?

ghostplant commented 2 years ago

If you only want to generate "valid code" that can run correctly on the target HW, you don't need the target HW.

But to generate "fastest code" for that target HW, Antares need to access that HW since it will evaluate a number of different implementations and finally pick up one of the most efficient codes.

To optimize code for the target HW, you need to install the SDK for that HW. For example, CUDA SDK is needed to make nvcc command work.