11

在典型的 CPU 上运行不受信任的代码有很多方法:沙箱、假根、虚拟化......

GPGPU(OpenCL、cuda 或已编译的)不受信任的代码呢?

假设在运行此类第三方不受信任的代码之前清除了显卡上的内存,

  • 有没有安全风险?
  • 什么样的风险?
  • 有什么办法可以防止它们?
    • 沙盒在 gpgpu 上是否可行/可用
    • 也许二进制仪器?
    • 其他技术?

PS 我对 gpu 二进制代码级别的安全性而不是高级 gpgpu 编程语言安全性更感兴趣(但也欢迎这些解决方案)。我的意思是,欢迎引用 gpu 操作码(又名机器代码)。

4

2 回答 2

2

GPU 代码肯定是有风险的。当前的 GPU 不提供内存保护,因此基本上每个 GPU 内核都可以访问所有视频内存。我不确定是否也可以访问主机的内存(也许通过内存映射?)。抢占内核是不可能的,它们可以“占用”GPU,如果它也用于图形输出,这也会导致冻结。(通常驱动程序会终止几秒钟后不退出的内核)

据说,AMD 的新 GPU 系列确实有一些内存保护功能,但我怀疑它们目前是否被使用。可以使用当前的硬件(GeForce 4xx+、Radeon 6xxx+)将 GPU 多处理器拆分为多个部分,但这与实时切片、抢占式多任务处理并不完全相同。;)

于 2011-01-11T19:13:02.980 回答
2

风险与任何 C 程序相同。另外,您可以让您的整个桌面冻结。通过执行一个非常长的计算,我设法做到了这一点。结果是屏幕不再更新,例如时钟小部件上的时间在那段时间内没有改变。所以你应该使用两张显卡 - 一张用于 GPU 的东西。

于 2011-01-08T20:50:24.377 回答