我有使用OpenCL的程序做數學,我怎麼能得到opencl的源代碼,當這個程序做計算時在我的GPU上執行?從GPU獲取OpenCL程序代碼
2
A
回答
3
最直接的方法是在應用程序中查找內核字符串。有時候你只能找到它的源代碼放在一些.cl文件中,否則你可以嘗試用strings之類的東西掃描應用程序的二進制文件。如果應用程序不是有目的地混淆內核源代碼,那麼您可能會使用其中一種方法找到它。
更強大的方法是捕獲提供給OpenCL API的字符串。你甚至可以提供你自己的OpenCL實現,只是在相關的cl函數中打印出內核字符串。其實很簡單:從pocl開始並更改the implementation of clCreateProgramWithSource以打印輸入字符串 - 這是一個簡單的代碼更改。
然後,您可以將該修改後的版本安裝爲OpenCL實現,並確保應用程序使用它。如果應用程序需要某些OpenCL功能,這可能會非常棘手,但是您的實現當然可以對這些做出解釋。
請注意,將來,SPIR可能會使這種事情變得不可能 - 您將能夠獲得內核的IR,但不能獲得其源。
1
clGetProgramInfo(...,CL_PROGRAM_BINARIES,...)讓你獲得編譯的二進制文件,但解釋依賴於體系結構。各種SDK有不同的工具,可能會讓你GPU組裝。
+0
這工作如果我建立程序,但我需要與其他封閉的程序做到這一點。我無法編譯任何東西,但我需要獲得在GPU上執行的源代碼。 – lebron2323
相關問題
- 1. GPU編程,CUDA或OpenCL?
- 2. OpenCL不檢測GPU
- 3. GPU/OpenCL/OpenGL代碼隨機分段故障
- 4. 在GPU中優化opencl中的內核代碼
- 5. OpenCL源代碼?
- 6. OpenCL動態並行/ GPU衍生線程?
- 7. 獲取從代碼
- 8. 獲取從代碼
- 9. 如何獲取DMA的GPU內存的物理地址? (OpenCL)
- 10. 獲取python程序的退出代碼
- 11. 在程序後面獲取代碼
- 12. OpenCL掃描代碼
- 13. Raspery Pi 3 OpenCL GPU支持?
- 14. OpenCL AMD S10000雙GPU執行
- 15. TensorFlow GPU支持Mac - OpenCL的
- 16. OpenCL和GPU與Android OpenCV SDK
- 17. 用於GPU的OpenCL FFT庫?
- 18. 從Saber獲取行程代碼API
- 19. 的OpenCL程序不工作的特斯拉M60 GPU
- 20. Linux Arch OpenCL ICD加載程序 - Nvidia GPU,Intel CPU
- 21. GPU可以成爲OpenCL程序的主機嗎?
- 22. pyopenCL,openCL,無法在GPU上構建程序
- 23. OpenCL主機代碼爲Bitonic排序
- 24. 從沒有源代碼的.Net程序集(IL代碼)獲取AST
- 25. 如何運行我從Android源代碼獲取的應用程序源代碼?
- 26. 從php代碼獲取圖像到iOS應用程序
- 27. 是否可以從Flash應用程序獲取顏色代碼?
- 28. Gruntfile從程序串行獲取錯誤代碼
- 29. 從代碼生成工具獲取對程序集的引用
- 30. 獲取應用程序,從名字的GUID - 通過代碼
謝謝!!!!!!!!! – lebron2323