我正在讀取和寫入大量的FITS和DNG圖像,這些圖像可能包含與我的平臺和/或opencl設備不同的字節序數據。使用opencl交換字節順序的快速方法
如果需要,目前我在主機的內存中交換字節順序,這非常緩慢並且需要額外的步驟。
是否有一個快速的方法來傳遞int/float/short的緩衝區有錯誤的endianess到opencl-kernel?
使用額外的內核運行只是爲了修復endianess沒問題;使用一些無開銷的自動修復讀/寫操作將是完美的。
我知道變量的屬性((endian(host/device))),但這並不能幫助使用小端設備的小端平臺上的大端FITS文件。
我想到了這樣一個解決方案(既不執行也不進行測試,還):
uint4 mask = (uint4) (3, 2, 1, 0);
uchar4 swappedEndianness = shuffle(originalEndianness, mask);
// to be applied on a float/int-buffer somehow
希望有一個更好的解決方案在那裏。
由於提前, runtimeterror
哦 - 我以某種方式認爲「組件選擇語法」只是OpenGL。你是對的,這應該像魅力一樣工作! – 2013-05-14 08:52:48