- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有办法编译 Haskell 以在 Xeon Phi 协处理器上运行?
英特尔的一些研究人员最近报告了 Haskell Research Compiler(这不是公开的,这使得他们的结果基本上无法重现)并测量了 Haskell Gap(表明在某些情况下 Haskell 的性能超过了 C)。他们通过称为 Pillar(类似于 C--)的中间语言描述了编译路径,并将其编译为 C,这样他们就可以使用 icc 创建可在 Phi 上执行的目标代码。
GHC 支持编译为 LLVM 或直接生成 native 代码 (NCG)。据我所知,既没有针对 Phi 的 NCG 可用,也没有用于 Phi 的 LLVM 后端。可以访问 icc,通过 C 的路由似乎是可能的,但是我不确定目前它有多现实(我认为不再支持 GHC 中的 C 代码生成器,对于 LLVM IR-to-C 后端也是如此,如果我错了请纠正我)。
所以我想到了三个路线:
在未注册模式下编译GHC并用-fvia-c
编译然后使用 icc
使用旧版本的 GHC 生成 C 代码,然后使用 icc
使用旧的 LLVM 版本通过 GHC LLVM 然后生成 CLLVM 然后使用 icc
哪条路线最可行(为什么/为什么不可行)?是否还有其他可能性(我放弃了 Pillar 路线,因为诸如 pillar2c 之类的工具尚未(还?)公开可用)。
一个相关的问题是关于 Phi 的 x86 兼容性——似乎不支持 SSE/AVX 指令,如果使用例如编译,一些目标代码将无法运行。 gcc 或 clang。
更新:
在 LLVM session 上与一些英特尔人员交谈后,他们似乎不太可能发布他们的 Phi LLVM 后端。不过,下一代 Xeon Phi 将支持 AVX512。
最佳答案
如果你通过 C 编译你的 Haskell,结果不是限制为不比 C 快,因为你可以直接编写 C 代码吗?你的问题表明你试图重现的项目是通过不同的语言编译的。
所以我不确定可用的工具是否足够先进来做你想做的事,抱歉。
关于c - 在 Xeon-Phi 上运行 Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22253311/
这个问题在这里已经有了答案: How can I find the time complexity of an algorithm? (10 个答案) 关闭 10 个月前。 Fibonacci 的正
是否可以通过启动多个线程来使用至强融核, 还是需要使用至强融核的特殊编程类型? 最佳答案 英特尔有一些相当不错的数学库,IPP/MKL。在至强融核似乎是一字不漏的阅读中,我想象英特尔拥有这些库的一个版
最近在研究Linux phy driver,有一些问题需要帮助。 例如:我的以太网 phy 是 Marvell Alaska 88E1548 我如何知道内核是否支持此 phy? 我在driver/ne
没那么重要,但烦人到没完没了。为什么 matlab 没有小 phi (\varphi) 符号?它几乎具有 LaTeX 提供的所有其他符号,但不是这个。为什么? 我当然可能是错的,在这种情况下,如果有人
是否可以从标准计算机以太网接口(interface)直接从物理以太网连接接口(interface)读取位? 例如,假设我想将笔记本电脑的以太网插孔用作差分逻辑探头(使用标准以太网电缆)。我是否可以潜在
当我使用命令 clang -emit-llvm -S test.c -o test.ll 时,IR 文件中没有任何“phi”指令。我怎么才能得到它? 我知道我可以使用传递“-mem2reg”或“-gv
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我想获取 xeon phi 上字符串的所有子字符串 首先,我从 args 读取一个 txt 文件并将其存储到这样的指针数组中 char *temp_string[N_ELEMENT]; 其次,我想使用
我正在通过 Stampede 使用 Xeon Phi 解决 Collatz 猜想问题。我已经测试过我的代码,对于高达 100,000 的值可以正常工作,但是测试高达 100 万的值时,我几乎立即收
我正在使用带卸载功能的 cilk plus 在 Xeon phi 上进行一些性能测试。 在一个简单的 vector 加法程序中,我有两种方法: 使用 cilk_for 将任务拆分到 Xeon phi
我想构建一个应用程序,用户可以在其中将多个标签(字符串)分配给一个日期(YYYY-MM-DD 字符串)。主要用例是计算 Phi coefficient对于两个标签(A 和 B)的组合,需要将每个日期放
我必须在 Linux 中编写以太网 PHY 环回测试。我以前从未做过,也不知道从哪里开始。经过一番研究,我想出了测试的方案,不知道有没有人能帮我验证一下,给我一些问题的指点。 这是一个外部环回设置。它
考虑购买一对 Xeon Phi 5110P,但试图估计我需要更改多少代码或需要其他软件。 目前我善用R在多核 Windows 机器(24 核)上使用 foreach包,传递给其他包forecast ,
在 Nvidia GPU 上,我们可以通过使用 Streams 让多个内核同时运行。至强 Phi 怎么样?如果我通过不同的线程卸载两部分计算代码,它们会在至强融核上并发运行吗? 最佳答案 是的,您可以
LLVM 有 phi带有相当奇怪解释的指令: The 'phi' instruction is used to implement the φ node in the SSA graph repres
当只有一个可能的前任时,使用 phi 节点有什么好处?例如,当我运行 opt -loop- some-cool-file.ll -S , 如果我还没有添加的话,输出将经常包括一个只有一个可能的前任的
当我在计算器 Cos45 上书写时,我得到一个小数 = 0.707 如何在 C 中生成这样的数字。 我测试了这个: printf ("type a degree between 0 - 360:\n"
从这里https://software.intel.com/en-us/videos/purpose-of-the-mic-architecture我了解具有复杂或大量随机内存访问的应用程序不太适合
在修复上一个问题 (Python AttributeError:cos) 中的导入并使用 sympy 函数稍作更改后: from sympy import * from sympy import Sy
对于一个学校项目,我需要找到球形纹理贴图的 theta 和 phi。许多用于纹理的实际 OpenGL 已经完成(带有起始代码)。起始代码提供了以下功能和注释。代码是我到目前为止所做的(除了给定的 x
我是一名优秀的程序员,十分优秀!