将位图加载到 GPU 的内存很慢?为啥?
1
MCVector 2020-11-25 06:05:53 +08:00 via Android
需要更多信息。用的是什么 API ?是上传到显存的阶段慢还是磁盘的 io 慢?
|
2
northisland 2020-11-25 08:17:21 +08:00 via Android
老哥,给的信息太少了吧,用的是 cudamemcpy api,还是 clEnqueueRead,还是其他乱七八糟的 api,gpu3 种内存都可以放图片。。。
交换数据瓶颈是总线,gpu 用的是 pcie 总线,可以算一下。 |
3
happinessnch 2020-11-25 09:30:22 +08:00
我印象里从内存拷贝到 GPU 缓存过程是一处性能瓶颈( 13 年左右得到的结论),
所以 AMD 才弄了个 APU 共享 GPU 和 CPU 存储空间。 位图为啥慢?所谓快慢至少要有一个比较对象吧,你要比较的对象是什么?是方法、还是不同格式? |
4
BUappend OP @MCVector @happinessnch @northisland 我在看前端的动画优化的时候看到了这句话,对于动画来说,每次的重排都会生成新的位图,然后说 “ 将位图加载到 GPU 的内存是很慢的操作 ” ,所以尽量减少动画的重排。
|
5
bojue 2020-11-25 15:23:03 +08:00
css 性能优化为了减少重绘和重排,可以使用 transfrom 或者 opacity 合成层属性实现动画,这样整个 css 绘制流程只涉及到 composite 。
Composited Layer 都需要 CPU 处理位图,需要考虑 CPU 的带宽问题和内存的管理,所以需要避免过度使用 Composited Layer 。 |
7
bojue 2020-11-25 18:26:20 +08:00
@bojue 细节记不住了,不过可以查一下,随手找到一篇 https://zhuanlan.zhihu.com/p/39880024
|