我剛剛發現AMD相當於CUDA的__byte_perm內在; amdgcn_ds_swizzle
(或者至少我認爲它相當於一個字節排列函數)。我的問題是這樣的:CUDA的字節perm取兩個無符號的32位整數,然後根據選擇器參數的值(作爲十六進制值提供)進行置換。但是,AMD的swizzle函數只需要一個無符號的32位整數,而一個int被稱爲「模式」。我如何利用AMD的Swizzle內在功能?AMD HCC Swizzle Intrinsic
回答
ds_swizzle and __byte_perm do有點不同。一個整個寄存器跨越整個寄存器,後面的兩個32位寄存器中的任何四個字節排列。
AMD的ds_swizzle_b32 GCN指令實際上是與其他通道交換數值。您可以在要讀取的通道中指定32位寄存器,並指定要將其放入的32位寄存器。還有一個硬編碼值指定如何交換這些值。用戶3528438指出ds_swizzle_b32的一個很好的解釋是here。
__byte_perm不會與其他通道交換數據。它只收集來自其自己通道中的兩個32位寄存器的任何4個字節並將其存儲到寄存器中。沒有跨線交通。
我猜接下來的問題是如何在AMD GCN硬件上進行「字節置換」。該指令是v_perm_b32。 (見第12-152頁here)它基本上從兩個指定的32位寄存器中選擇任意四個字節。
感謝您提供此信息。 v_perm_b32函數似乎沒有用HCC編譯器實現。有沒有辦法使用原始彙編指令手動實現它?我正考慮使用「asm」函數在設備代碼中調用「v_perm_b32」指令,但顯然這對於HCC是非法的。 – ligosan
對不起,我不太瞭解HCC編譯器,因爲它沒有Windows Visual Studio支持。我知道它可能在C#(__asm4GCN)中,但這可能不是你正在尋找的。如果HCC或OpenCL支持內聯asm,那將會非常棒!順便說一下,也許你可以要求將v_perm_b32支持添加到HCC編譯器。 (或者更好的支持) – Sunsetquest
- 1. glBlitFramebuffer&swizzle
- 2. Object intrinsic monitor as java.util.concurrent.Lock
- 3. UINavigationController supportedInterfaceOrientations:category vs swizzle
- 4. swizzle NSMutableArray addObject:失敗
- 5. 什麼是HCC?它是病毒嗎?
- 6. Swizzle NSURLConnection sendAsynchronous:request:queue:completionHandler and sendSynchronousRequest:returningResponse:error:not working
- 7. Swizzle swift屬性getter/setter
- 8. Neon Intrinsic版本的彙編代碼
- 9. UICollectionView不會調用intrinsic內容尺寸
- 10. iPhone設備上的Swizzle方法
- 11. 如何使用方法swizzle或子類
- 12. Emberjs解析器,amd和non-amd模塊
- 13. OpenCL AMD AMD GPU時間測量問題
- 14. Dojo從非AMD項目轉換到AMD
- 15. TypeScript + Dojo + AMD?
- 16. AMD perf events
- 17. Twilio AMD .NET API?
- 18. AMD xop支持
- 19. amd和coffeescript
- 20. Backbone AMD with requireJs
- 21. AMD jQuery Multiselect Widget
- 22. SQL LIKE「[AMD]%」
- 23. Xt(X Tools Intrinsic)Toolkit。什麼是應用程序上下文?
- 24. 如何通過AMD
- 25. Dojo require()和AMD(1.7)
- 26. Highchart/Highstock AMD支持
- 27. Monetdb,cuda,opencl,amd bolt
- 28. AMD相當於NvOptimusEnablement
- 29. JShint警告:在AMD
- 30. 使用AMD和Moodle
你看過手冊嗎? – user3528438
[This](http://scchan.github.io/hcc/hc_8hpp.html)是我擁有的唯一手冊。它沒有提供太多的信息。我已經在互聯網上搜索過,沒有發現任何東西(除非我找錯了地方)。所以我已經轉向了stackoverflow作爲我的最後的手段。 – ligosan
http://gpuopen.com/amd-gcn-assembly-cross-lane-operations/ – user3528438