java - 使用Java Vector API Shuffle复制_mm256_shuffle_epi8 Intrinsic?
问题描述
我(主要是为了好玩)尝试使用 Java 的 Vector API 编写一个 SHA-256 摘要函数。我使用比特币的以下 AVX2 实现作为参考:
我已经能够做到使用 shuffle 内在函数的地步:return _mm256_shuffle_epi8(ret, _mm256_set_epi32(0x0C0D0E0FUL, 0x08090A0BUL, 0x04050607UL, 0x00010203UL, 0x0C0D0E0FUL, 0x08090A0BUL, 0x04050607UL, 0x00010203UL));
.
我看到 Java Vector API 提供了一个VectorShuffle
类和该类的rearrange
方法,Vector
但 API 文档似乎从索引的角度而不是掩码的角度接近洗牌。
_mm256_shuffle_epi8
所以我的问题是 - 如何使用 Java 的矢量 API复制(尽可能接近)内在函数的行为?
更新:我刚刚意识到 AVX2 SHA-256 比特币实现似乎是双 SHA-256 实现。这让事情变得复杂...
解决方案
推荐阅读
- cucumber-jvm - 未定义注解类型的属性值 Before
- java - 在 android studio 中运行代码时出现错误
- azure-ad-b2c - Azure B2C 的命名约定
- c# - RabbitMQ + .NET C#:发布的消息永远不会在同一个程序中使用,为什么?
- java - 如何使用 Ajax 获取 reCAPTCHA 数据
- functional-programming - 如何从文件中读取内容并将其存储在 clojure 的哈希映射中?
- python - 用python在influxdb中发送时间
- javascript - 按添加顺序添加 localStorage 项目
- webassembly - 我应该如何在 Wasm 内存中存储连续的 f64 值?
- android - 构建 Opencv4.3 Android 共享库错误