是不是calResMap和calResUnmap都是同步执行的?也就是说Unmap完了以后就保证数据已经传输完成了?
那么如果想做到数据异步传输,是不是必须用calMemCopy实现呢?
2)关于global buffer的问题
如果一个Resource被用作global buffer,那么在allocating的时候,就必须指定?
也就是说,一个global buffer的资源,如果想在别的kernel里作为通常的input或output应用,必须重新分配空间,重新传输?
3)关于memory tiling的问题
根据文档,global buffer是linear addressing的,那么通常的Input或output可以用linear
addreasing么?还是必须是tiled?
--
Tianji Wu (the729)
dept. of EE, Tsinghua Uni.
1)关于异步运行的问题。
是不是calResMap和calResUnmap都是同步执行的?也就是说Unmap完了以后就保证数据已经传输完成了? 那么如果想做到数据异步传输,是不是必须用calMemCopy实现呢?
2)关于global buffer的问题
如果一个Resource被用作global buffer,那么在allocating的时候,就必须指定?
也就是说,一个global buffer的资源,如果想在别的kernel里作为通常的input或output应用,必须重新分配空间,重新传输?
3)关于memory tiling的问题
根据文档,global buffer是linear addressing的,那么通常的Input或output可以用linear
addreasing么?还是必须是tiled?
现在没有选择的接口,input/output都是tiled。
1) 关于异步运行的问题。
是不是calResMap和calResUnmap都是同步执行的?也就是说Unmap完了以后就保证数据已经传输完成了? 那么如果想做到数据异步传输,是不是必须用calMemCopy实现呢?
是的。calResMap和 calResUnmap都是同步执行的,calMemCopy是异步执行。
2)关于global buffer的问题
如果一个Resource被用作global buffer,那么在allocating的时候,就必须指定?是的。
也就是说,一个global buffer的资源,如果想在别的kernel里作为通常的input或output应用,必须重新分配空间,重新传输?
是的,可以写一段简单的copy kernel,避免总线传输。但是,为什么不直接用先前的global buffer来作为数据的input/output呢?
3)关于memory tiling的问题
根据文档,global buffer是linear addressing的,那么通常的Input或output可以用linear
addreasing么?还是必须是tiled?
现 在没有选择的接口,input/output都是tiled。
好像这个函数不支持部分拷贝的。
如果要做部分拷贝需要自己写一个copy kernel
Jiawei OU, School of Software Engineering, Tongji University