FPGAs can compete with GPUs for some applications but with some key differences: 1) FPGAs are configured to create custom hardware for an algorithm rather than using predefined hardware like GPUs. This allows high efficiency but is more difficult to program. 2) While OpenCL provides a common language, FPGAs and GPUs have very different architectures and optimizing algorithms requires different approaches for each. 3) For applications with high bandwidth I/O or flexibility requirements, FPGAs may have advantages over GPUs, but GPUs typically have higher performance for compute-heavy applications and better energy efficiency. Overall, FPGAs have become more accessible but still require more programming effort than GPUs.