OpenCL was introduced to address portability, providing an open standard for CPUs, GPUs, and field programmable gate arrays (FPGAs) across vendors. However, it has not gained wide adoption in HPC due to performance and usability issues. While OpenCL offers portability, its abstraction often results in suboptimal performance compared to specialized frameworks like CUDA. Its lower-level programming model is also cumbersome, requiring significant manual effort for memory management and kernel optimization. Fragmented implementations across vendors further undermine OpenCL's portability, as performance and features can vary, forcing developers to fine-tune code for each platform.