Tôi đang tìm thư viện OpenCL wrapper tốt cho Python, với tài liệu tốt. Tôi đã cố gắng tìm kiếm một số ... nhưng không thể tìm thấy một đủ tốt.OpenCL cho Python
Trả lời
Tùy chọn được tài liệu phổ biến nhất và tốt nhất có vẻ là PyOpenCL. Nó tuyên bố là một trình bao bọc hoàn chỉnh cho OpenCL và tài liệu có vẻ tốt.
pycl là một ctypes ràng buộc để OpenCL (lưu trữ on bitbucket)
mục tiêu chính của nó là đơn giản: quấn OpenCL theo cách như vậy mà như việc triển khai nhiều Python có thể sử dụng nó như là khả thi. Nó hiện đang được thử nghiệm trên CPython 2. {5,6,7}, 3,2 và PyPy 1.5. Nó được biết là phần lớn không hoạt động trên Jython, có thư viện ctypes vẫn chưa trưởng thành.
Để đạt được điều này, chúng tôi tránh các mô-đun mở rộng và phụ thuộc bên ngoài thư viện chuẩn. Lý tưởng nhất là những thứ như mảng NumPy và hình ảnh PIL chỉ nên hoạt động, nhưng chúng không được yêu cầu
Hiện tại, nó mới. Tôi đã chơi với nó gần đây và nó hoạt động tốt. Thời gian không thực hiện so với PyOpenCL, nhưng hiệu suất dường như hoàn toàn hợp lý
Tôi không làm việc cho tôi với OpenCL 1.0 OS X 10.6 (và AMD Radeon 5870, see here), nhưng hoạt động hoàn hảo dưới 10.7 và OpenCL 1.1
Đối với tài liệu, đó là một liên kết khá trực tiếp với các thư viện C, vì vậy mọi tài liệu sẽ áp dụng. Ngoài ra "Adventures in PyOpenCL" là tốt và áp dụng cho hầu như tất cả các ràng buộc
Chúng tôi đang phát triển opencl4py, các mức ràng buộc cấp cao hơn. Dự án này sử dụng CFFI, vì vậy nó hoạt động trên Pypy.
Vấn đề chính mà chúng tôi gặp phải với pyopencl là 'import pyopencl' không khởi tạo OpenCL và chiếm toàn bộ bộ nhớ ảo trong trường hợp trình điều khiển NVIDIA, ngăn chặn lỗi chính xác và vô hiệu hóa khả năng đa xử lý (vâng, chúng tôi cho rằng việc sử dụng pyopencl vô hiệu hóa đa xử lý ít nhất là với NVIDIA). opencl4py sử dụng khởi tạo OpenCL lười biếng, giải quyết "địa ngục nhập" này.
Sau đó, nó đã đạt được một số tính năng đẹp như bộ nhớ đệm chương trình nhị phân siêu dễ dàng, v.v. Thật không may, tài liệu hơi ngắn gọn. Cách tốt nhất để tìm hiểu cách hoạt động của nó là trải qua các bài kiểm tra.
PyOpenCL tác giả ở đây. Ý nghĩa nhất tôi có thể làm cho tuyên bố của bạn là opencl4py không tải libOpenCL.so tại thời gian nhập. Nếu đó là một vấn đề (như bạn đang tuyên bố), thì tại sao không nhập khẩu PyOpenCL chính xác nơi nó cần thiết? Không chắc tôi hiểu động lực của bạn ở đây. –
Như một bình luận thêm, PyOpenCL có một nhánh [cffi] (https://github.com/pyopencl/pyopencl/tree/cffi) có thể khởi động hạt nhân và làm việc trên PyPy. Nó không hoàn toàn sẵn sàng cho thời gian đầu, nhưng nó đang đến đó. –
Ứng dụng của chúng tôi có hàng tá mô-đun sử dụng OpenCL và trì hoãn quá trình nhập khiến mã dễ bị lỗi. Mỗi lần ai đó nhập khẩu pyOpenCL "sớm hơn anh ta nên" dẫn đến rất khó để gỡ lỗi và chẩn đoán lỗi ...đôi khi :) Và tất nhiên nó có thể hoạt động với các thiết bị không phải của NVIDIA OpenCL trên máy của nhà phát triển. – markhor
- 1. OpenCL FFT lib cho GPU?
- 2. Gọi hạt nhân OpenCL từ một hạt nhân OpenCL khác
- 3. Memory trong OpenCL
- 4. Có trình bao bọc OpenCL tốt cho Ruby không?
- 5. bao gồm tiêu đề cho tệp OpenCL .cl
- 6. GLSL có sử dụng SLI không? OpenCL? Điều gì là tốt hơn, GLSL hoặc OpenCL cho nhiều GPU?
- 7. OpenCL vô hướng vs vector
- 8. OpenCL và hiệu suất OpenMP
- 9. Cuda - OpenCL CPU 4x nhanh hơn so với OpenCL hoặc CUDA phiên bản GPU
- 10. Sự khác biệt giữa OpenCV và OpenCL
- 11. Sử dụng #include để tải mã OpenCL
- 12. Bắt đầu với OpenCL trên Windows 7
- 13. Tổng kết mảng cummulative sử dụng OpenCL
- 14. Tối ưu hóa hiệu suất OpenCL
- 15. OpenCL AMD vs NVIDIA hiệu suất
- 16. Đảo ngược ma trận trong OpenCL
- 17. Biên dịch OpenCL trên Mingw Nvidia SDK
- 18. nhúng OpenCL mã vào thực thi
- 19. Nhúng V8 trong ứng dụng OpenCL?
- 20. Tại sao mã opencl này không xác định?
- 21. OpenCL có tốt cho mô phỏng dựa trên tác nhân không?
- 22. Chủ đề liên tục trong OpenCL và CUDA
- 23. Thiết bị CPU OpenCL vs Thiết bị GPU
- 24. IPad hoặc IPhone có khả năng OpenCL không?
- 25. Làm thế nào để có được OpenCL SDK?
- 26. Trong OpenCL, mem_fence() làm gì, trái với rào cản()?
- 27. Tại sao bitfield không được phép trong OpenCL?
- 28. Làm cách nào để sử dụng OpenCL trên Android?
- 29. Xung đột ngân hàng là gì? (Lập trình Cuda/OpenCL)
- 30. Làm thế nào để cấu trúc hạt nhân OpenCL lớn?
Ow. tnx .. có vẻ như tôi đã tải PyOpenCL không phải từ trang web chính thức .. và đó là lý do tại sao tôi không tìm thấy tài liệu cho nó ... –
@Ai_boy: chắc chắn, không có vấn đề gì. –