針對share memory訪問衝突的問題

在閱讀了高性能運算之CUDA之後

在書中看到一個struct為

struct type{
float x, y, z;
};

這個結構看得出來

可以解決訪問衝突在half-warp訪問資料的時候

不過另一個問題是

如果我的struct很大的時候

例如

struct type{
float a, b, c, d, e, f;
};

照上面的方法推了一下

存取a時就會造成2-way訪問衝突了

請問這個時候

有沒有更好的方法解決

例如怎麼分配struct或者是對齊資料之類的

另外再提出一個問題

就是__align(x)__

這個x最大能到多少?

在global memory中可以使struct對齊

在share memory中也可以對齊嗎?

用structure of array.

不懂?
能不能講明點?