本文翻译整理自:https://github.com/arrayfire/arrayfire
ArrayFire 是一个通用张量计算库,能够简化针对 CPU、GPU 及其他硬件加速设备中并行架构的软件开发流程。该库服务于各技术计算领域的用户。
商标政策 : “ArrayFire” 文字商标及标识是 AccelerEyes LLC(运营名 ArrayFire)的注册商标。使用前请查阅 商标政策。
github : https://github.com/arrayfire/arrayfire
官网:http://arrayfire.com/
官方文档:http://www.arrayfire.com/docs/index.htm
快速链接: 函数列表 | 教程 | 示例 | 博客
Demo/在线试用:https://github.com/arrayfire/arrayfire/blob/master/examples/
Community : https://join.slack.com/t/arrayfire-org/shared_invite/MjI4MjIzMDMzMTczLTE1MDI5ODg4NzYtN2QwNGE3ODA5OQ
Blog : http://arrayfire.com/blog/
FAQ : https://groups.google.com/forum/#!forum/arrayfire-users
License : https://github.com/arrayfire/arrayfire/blob/master/LICENSE
Slack | 谷歌论坛 | 企业服务 咨询
ArrayFire 为开发者提供了加速设备数据的高级抽象对象 af::array
。开发者对 ArrayFire 数组执行操作时,这些操作会自动转换为在计算设备上执行的近最优内核。
ArrayFire 支持从低功耗移动设备到高性能 GPU 超级计算机的全系列设备,兼容所有主流厂商的 CPU(Intel/AMD/ARM)及 GPU(AMD/Intel/NVIDIA/Qualcomm),并支持 Windows/Mac/Linux 上的各类加速设备。
安装或从源码构建的指南详见 wiki。
查看 维基百科页面 了解游戏规则。
static const float h_kernel[] = { 1, 1, 1, 1, 0, 1, 1, 1, 1 };
static const array kernel(3, 3, h_kernel, afHost);
array state = (randu(128, 128, f32) > 0.5).as(f32); // 初始化状态
Window myWindow(256, 256);
while(!myWindow.close()) {
array nHood = convolve(state, kernel); // 获取邻居状态
array C0 = (nHood == 2); // 生成生存条件
array C1 = (nHood == 3);
state = state * C0 + C1; // 更新状态
myWindow.image(state); // 可视化
}
完整源码见:https://github.com/arrayfire/arrayfire/blob/master/examples/graphics/conway_pretty.cpp
array predict(const array &X, const array &W) {
return sigmoid(matmul(X, W));
}
array train(const array &X, const array &Y, double alpha = 0.1, double maxerr = 0.05, int maxiter = 1000, bool verbose = false) {
array Weights = constant(0, X.dims(1), Y.dims(1));
for (int i = 0; i < maxiter; i++) {
array P = predict(X, Weights);
array err = Y - P;
if (mean<float>(abs(err) < maxerr) break;
Weights += alpha * matmulTN(X, err);
}
return Weights;
}
...
array Weights = train(train_feats, train_targets);
array test_outputs = predict(test_feats, Weights);
display_results<true>(test_images, test_outputs, test_targets, 20);
完整源码见:https://github.com/arrayfire/arrayfire/blob/master/examples/machine_learning/perceptron.cpp
更多示例代码请访问 examples/
目录。
ArrayFire 提供多种官方及社区维护的语言 API:
官方支持:
社区维护:
开发中封装:
伊织 xAI 2025-04-28(一)