Tôi đang làm việc trên một dự án cần sử dụng FFT trên cả hai card đồ họa Nvidia và AMD. Ban đầu tôi đã tìm một thư viện có thể làm việc trên cả hai (nghĩ rằng đây sẽ là cách OpenCL) nhưng tôi không có may mắn.OpenCL FFT trên cả phần cứng Nvidia và AMD?
Ai đó đã đề xuất với tôi rằng tôi sẽ phải sử dụng triển khai FFT của mỗi nhà cung cấp và viết trình bao bọc đã chọn những việc cần làm dựa trên nền tảng. Tôi thấy việc triển khai của AMD khá dễ dàng, nhưng tôi thực sự đang làm việc với một thẻ Nvidia trong thời gian chờ đợi (và đây là điều quan trọng hơn đối với ứng dụng cụ thể của tôi).
Việc triển khai Nvidia duy nhất tôi có thể tìm thấy là CUFFT. Có ai biết làm thế nào tôi thực sự có thể sử dụng thư viện CUFFT từ OpenCL? Cách duy nhất tôi có thể nghĩ đến là có một số mã CUDA cùng với mã OpenCL của tôi. Tôi đã đọc mà tôi không thể chỉ sử dụng bộ đệm OpenCL dưới dạng con trỏ CUDA (Trying to mix in OpenCL with CUDA in NVIDIA's SDK template). Thay vào đó, tôi sẽ phải sao chép các bộ đệm trở lại máy chủ sau khi chạy hạt nhân OpenCL và sau đó sao chép chúng trở lại GPU bằng cách sử dụng các thói quen chuyển bộ nhớ CUDA? Tôi không thực sự thích cách tiếp cận này vì nó dường như liên quan đến chuyển giao bộ nhớ vô nghĩa, tôi rất thích nó nếu tôi chỉ có thể sử dụng CUFFT từ OpenCL.
ViennaCL hiện có triển khai FFT "thử nghiệm". Ít nhất là cho điện 2 biến đổi nó nên thực hiện hợp lý. – talonmies