【问题标题】:Ruby SIMD & SSE红宝石 SIMD 和 SSE
【发布时间】:2011-03-08 10:36:15
【问题描述】:

我想知道是否有办法扩展 ruby​​ 数组类型来进行 SIMD 和 SSE 向量计算。

我的意思是用一种低级语言实现,以在 ruby​​ 程序中用于数字运算任务。

【问题讨论】:

    标签: ruby vector sse simd


    【解决方案1】:

    尝试在 RubyInline 中使用 GCC simd 内部函数

    【讨论】:

      【解决方案2】:

      可能值得探索Ruby-OpenCL 并根据需要对其进行扩展。

      【讨论】:

      • 很好,我正在寻找的东西。但是使用 SIMD 和 SSE 操作以及更自然的 ruby​​ 风格。
      【解决方案3】:

      我怀疑你需要写一个Ruby C extension。我没有使用该教程,但它似乎是合理的。只需将要在扩展中使用的 SIMD 和 SSE 方法包装起来,瞧!我以前没有开发过这种扩展,所以我不确定这种操作在 Ruby 和 C 之间移动数据时是否会产生复制开销。你必须调查一下;快速 Google 并没有发现任何这样的扩展。

      【讨论】:

      • 您可以通过C扩展添加自己的数据类型,所以如果使用内置数组会涉及太多复制,他可以roll is own。
      • 我在想是否可以键入 ruby​​ 数组。如果我们可以创建一个纯浮点数组或浮点矩阵来进行科学编程。似乎 ruby​​ 数组更像是一个带索引的对象包。
      • 我在一个非常简单的使用 NArrays 的 Ruby gem 中使用了 SSE,并从中获得了合理的加速。 github.com/neilslater/convolver
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      相关资源
      最近更新 更多