微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么是 llvm_pipe 线程?

如何解决什么是 llvm_pipe 线程?

我正在编写一个使用大量线程的 Rust 应用程序。我注意到 cpu 使用率很高,所以我做了 top 然后点击 H 查看线程:

    PID USER      PR  NI    VIRT    RES    SHR S  %cpu  %MEM     TIME+ COMMAND                
         
 247759 root      20   0 3491496 104400  64676 R  32.2   1.0   0:02.98 my_app           
 247785 root      20   0 3491496 104400  64676 S  22.9   1.0   0:01.89 llvmpipe-0             
 247786 root      20   0 3491496 104400  64676 S  21.9   1.0   0:01.71 llvmpipe-1             
 247792 root      20   0 3491496 104400  64676 S  20.9   1.0   0:01.83 llvmpipe-7             
 247789 root      20   0 3491496 104400  64676 S  20.3   1.0   0:01.60 llvmpipe-4             
 247790 root      20   0 3491496 104400  64676 S  20.3   1.0   0:01.64 llvmpipe-5             
 247787 root      20   0 3491496 104400  64676 S  19.9   1.0   0:01.70 llvmpipe-2             
 247788 root      20   0 3491496 104400  64676 S  19.9   1.0   0:01.61 llvmpipe-3    

这些 llvmpipe-n 线程是什么?为什么 my_app 启动它们?他们肯定来自my_app吗?

解决方法

作为 HHK 链接,llvmpipe 线程来自您的 OpenGL 驱动程序,即 Mesa。

你说你在虚拟机中运行它。 VM 通常不会虚拟化 GPU 硬件,因此 Mesa OpenGL 驱动程序正在执行软件渲染。为了获得更好的性能,Mesa 会产生线程来在 CPU 上进行并行计算。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。