我在我的一些OpenCL樣板代碼中使用了cl_mem,但我一直在通過上下文使用它,而不是對它究竟到底是什麼。我一直使用它作爲記憶體的一種類型,我推動和離開董事會,迄今爲止已經浮動。我試着查看OpenCL文檔,但cl_mem不顯示(是嗎?)。有沒有關於它的文檔,或者它是否簡單並且有人可以解釋。關於OpenCL中cl_mem的問題
4
A
回答
6
對於計算機而言,cl_mem是一個數字(像Linux的文件處理程序),它被保留作爲「內存標識符」使用(API /驅動程序,無論存儲有關您的內存的信息,它擁有/它有多大以及類似的東西)
10
cl_mem類型是「Memory Object」的句柄(如OpenCL 1.1 Spec的第3.5節所述)。這些基本上是OpenCL內核的輸入和輸出,和從的OpenCL API調用在主機代碼例如
cl_mem clCreateBuffer (cl_context context, cl_mem_flags flags,
size_t size, void *host_ptr, cl_int *errcode_ret)
表示的存儲器區域可被允許不同的訪問模式返回如clCreateBuffer只讀,或分配到不同的內存區域,具體取決於創建緩衝區調用中設置的標誌。
手柄通常存儲允許以後調用來釋放內存,如:
cl_int clReleaseMemObject (cl_mem memobj)
總之,它提供了在內存實際上是一種抽象:您可以將數據複製到相關的存儲器或者通過OpenCL API clEnqueueWriteBuffer和clEnqueueReadBuffer退出,但OpenCL實現可以根據需要分配空間。
相關問題
- 1. OpenCL:從'float *'轉換爲'cl_mem'
- 2. OpenCL的問題
- 3. OpenCL的問題
- 4. OpenCL:關於SIMT執行模型的基本問題
- 5. OpenCL:發送相同的cl_mem到多個設備
- 6. OpenCL如何更改cl_mem的內存地址?
- 7. 關於C#中XPathNodeIterator問題的問題#
- 8. OpenCL核心問題
- 9. Cloo OpenCL c#問題
- 10. OpenCL內核問題
- 11. 將數據從Mat/oclMat傳輸到cl_mem(OpenCV + OpenCL)
- 12. 關於| =的問題#
- 13. Python和OpenCL的問題
- 14. 問題與Linux上的opencl
- 15. Rails關於關係的問題(中級)
- 16. 關於MVC中標題的問題
- 17. OpenCL中LDS內存的性能問題
- 18. 關於sas形成問題的問題
- 19. 關於JqGrid的問題和問題
- 20. 關於CSS問題
- 21. 問題關於PHP
- 22. 問題關於CCMenuItemToggle
- 23. 問題關於ASP.NET
- 24. 關於DPI問題
- 25. 問題關於C++
- 26. 關於Django的問題urls.py
- 27. 關於geocoder gem的問題
- 28. 關於NitrousIO問題的rspec
- 29. 關於Java類的問題
- 30. 關於彙編的問題