小编axs*_*uze的帖子

如何在 Vulkan 中跨多个计算队列执行并行计算着色器?

更新:此问题已解决,您可以在此处找到更多详细信息:https ://stackoverflow.com/a/64405505/1889253

之前曾提出过类似的问题,但该问题最初集中在使用多个命令缓冲区,并触发跨不同线程的提交以实现着色器的并行执行。大多数答案表明解决方案是使用多个队列。使用多个队列似乎也是各种博客文章和 Khronos 论坛答案的共识。我已经尝试了跨多个队列运行着色器执行的这些建议,但无法看到并行执行,所以我想问一下我可能做错了什么。正如所建议的,这个问题包括提交到多个队列的多个计算着色器的可运行代码,这希望对其他想要做同样事情的人有用(一旦这个问题得到解决)。

当前的实现是在这个 pull request/branch 中,但是我将介绍 Vulkan 的主要具体点,以确保只需要 Vulkan 知识来回答这个问题。还值得一提的是,当前的用例专门针对计算队列和计算着色器,而不是图形或传输队列(尽管跨这些队列实现并行性的见解/经验仍然非常有用,并且很可能也能找到答案)。

更具体地说,我有以下内容:

有几点在上面的示例中不可见但很重要:

  • 所有 evalAsync 都在同一应用程序、实例和设备上运行
  • 每个 evalAsync 都使用自己单独的 commandBuffer 和缓冲区,并在单独的队列中执行
  • 如果您想知道内存屏障是否有作用,我们已尝试完全删除所有内存屏障(例如,在着色器执行之前运行),但这对性能没有任何影响

基准测试中使用的测试可以在此处找到,但是需要了解的唯一关键事项是:

运行测试时,我们首先在同一队列上运行一组“同步”着色器执行(数量是可变的,但我们使用 6-16 进行了测试,后者是队列的最大数量)。然后我们以异步方式运行它们,运行所有它们并 evalAwait 直到它们完成。比较两种方法的结果时间时,即使它们运行在不同的计算队列上,它们也花费相同的时间。

我的问题是:

  • 我当前在获取队列时是否遗漏了某些内容?
  • vulkan 设置中是否还需要配置其他参数以确保异步执行?
  • 是否存在我可能不知道的潜在操作系统进程只能以同步方式向 …

c++ gpu gpgpu compute-shader vulkan

7
推荐指数
1
解决办法
1967
查看次数

Node.js 303连接到AWS-SDK时的永久重定向

下午好,

我正在尝试建立与我的aws产品api的连接,但是我一直收到301永久重定向错误,如下所示:

{ [PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.]
  message: 'The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.',
  code: 'PermanentRedirect',
  name: 'PermanentRedirect',
  statusCode: 301,
  retryable: false }
Run Code Online (Sandbox Code Playgroud)

我用来连接API的代码如下:

var aws = require('aws-sdk');

//Setting up the AWS API
aws.config.update({
    accessKeyId: 'KEY',
    secretAccessKey: 'SECRET',
    region: 'eu-west-1'
})

var s3 = new …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services node.js http-status-code-301

3
推荐指数
1
解决办法
4087
查看次数