Octave JIT 编译器。当前状态和展示效果的最小示例

2023-12-02

我听到有关 Octave 实验性 JIT 编译器功能的非常矛盾的信息,从“这是一个玩具项目,但它基本上不起作用”到“我使用了它,并且我获得了显着的加速”。

我知道为了成功使用它,需要

  • 编译八度与--enable-jit在配置时
  • 启动八度音程--jit-compiler option
  • 使用以下命令在运行时指定 jit 编译首选项jit_enable and jit_startcnt命令

但我一直无法令人信服地重现其效果;不确定这是否是因为我错过了我不知道的任何其他步骤,或者它根本对我的机器没有太大影响。

问:成功使用该功能的人能否提供一个最小的工作示例来演示其正确使用及其对计算机的影响(如果有)?


简而言之:

  • 你不需要做任何事情来使用 JIT,它应该可以工作并加速你的代码(如果可以的话);
  • 它几乎没有用,因为它只适用于简单的循环;
  • 它只不过是一个概念的证明;
  • there is no one currently working on improving it because:
    • 这是一个复杂的问题;
    • 它主要是对草率的 Octave 代码的修复;
    • 使用LLVM,它太不稳定了。

问:成功使用该功能的人能否提供一个最小的工作示例来演示其正确使用及其对计算机的影响(如果有)?

没有什么可显示的。如果您构建具有 JIT 支持的 Octave,Octave 将自动对某些循环使用更快的代码。唯一的区别在于速度,并且您不必更改代码(尽管您可以在运行时禁用 jit):

octave> jit_enable (1) # confirm JIT is enabled
octave> tic; x = 0; for i=1:100000, x += i; endfor, toc
Elapsed time is 0.00490594 seconds.
octave> jit_enable (0) # disable JIT
octave> tic; x = 0; for i=1:100000, x += i; endfor, toc
Elapsed time is 0.747599 seconds.

## but you should probably write it like this
octave> tic; x = sum (1:100000); toc
Elapsed time is 0.00327611 seconds.

## If Octave was built without JIT support, you will get the following
octave> jit_enable (1)
warning: jit_enable: support for JIT was unavailable or disabled when Octave was built

这是一个简单的示例,但您可以查看更好的示例和更多详细信息blog唯一参与此工作的人,以及他在 2012 年 OctConf 上的演讲。有关(已过时)的更多详细信息,Octave 的 JIT wiki 页面

请注意,Octave 的 JIT 仅适用于非常简单的循环。如此简单的循环以至于熟悉该语言的人一开始就不会编写它们。该功能是作为概念证明,也是任何想要扩展它的人的起点(我个人更喜欢编写矢量化代码,这就是该语言的设计目的)。

Octave 的 JIT 还有一个问题,那就是它使用 LLVM。 Octave 开发人员发现它对于此目的太不可靠,因为它不断破坏向后兼容性。 LLVM 的每个小版本都会破坏 Octave 构建,因此当 LLVM 3.5 发布并默认禁用它时,Octave 开发人员停止修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Octave JIT 编译器。当前状态和展示效果的最小示例 的相关文章

  • .NET 运行时 (CLR)、JIT 编译器到底位于哪里?

    这个问题可能看起来有点愚蠢或奇怪 但我听说过很多关于 NET CLR JIT 编译器及其工作原理的等等等等 但现在我想知道它到底位于或托管在哪里 Is it 当我们实际安装 NET Framework 时作为 Windows 操作系统的一部
  • 在 Octave 中创建具有多个绘图的动画

    我正在使用 Octave 编写一个脚本来绘制不同时间段的函数 我希望制作一个情节动画 以便看到随时间的变化 有没有办法保存每个时间点的每个图 以便可以组合所有图来创建此动画 这有点混乱 但您可以执行以下操作 此处适用于 Octave 4 0
  • 为什么即使运行了这么长时间也不会抛出断言错误?

    这是原始代码 author Brian Goetz and Tim Peierls ThreadSafe public class SafePoint GuardedBy this private int x y private SafeP
  • 没有 JIT 的 Android 设备

    我正在关注性能技巧 http developer android com training articles perf tips html通过开发者网站 其中提到了没有 JIT 的 Android 设备 但我搜索了无 jit 设备 但找不到
  • 如何在 Octave 中声明符号矩阵?

    在 MatLab 中 您可以非常轻松地声明符号 syms a b mat a b 但是 当我尝试在 Octave 中复制此内容时 出现错误 这是我正在使用的代码 gt symbols gt a sym a a a gt b sym b b
  • 如何以八度增加命令窗口的字体大小

    我试图弄清楚如何增加命令窗口文本 我想通了legend legend fontsize 10 Low fontsize 10 Medium fontsize 10 High 我尝试做同样的事情 但是command command windo
  • 八度变量前面的 @ 符号的用途是什么?

    例如 model svmTrain X y C x1 x2 gaussianKernel x1 x2 sigma 免责声明 这是来自 Coursera ML 课程 但以传统方式搜索 符号几乎是不可能的 定义的前缀匿名函数 https www
  • 是否可以通过脚本禁用 Firefox JavaScript JIT?

    我们的网站有一个相当复杂的 JS 应用程序 该应用程序在最新的 Firefox 10 版本中失败 这是由于 JS 解释器中的一个错误导致变量返回 NULL 而实际上它们显然不是这样 此错误仅在 JIT 编译器处于活动状态时发生 而不是在禁用
  • 如何检测 PHP JIT 是否启用

    检测 PHP 是否使用 JIT 编译并且从运行脚本启用 JIT 的最简单方法是什么 您可以通过调用直接查询opcache设置opcache get status https www php net manual en function op
  • 如何将 tex 添加到八度图

    我有一个条形图 我使用 text 在每个条形上方显示分数 例如 text 1 20 300 400 在位置 1 20 处显示字符串 300 400 我现在想美化分数 以便出现 300 over 400 300 400 有没有办法做到这一点
  • WeakHashMap 在完整 GC 期间是否被清除?

    我在使用 Wea kHashMap 时遇到了一些麻烦 考虑这个示例代码 List
  • Lua解释器相当于Matlab“whos”命令吗?

    Octave Matlab IPython whos 命令的 Lua 等价物是什么 我正在尝试以交互方式学习 Lua 并想看看当前定义了哪些变量 Lua 中的所有全局变量都驻留在可用作全局变量的表中 G http www lua org m
  • 为什么 Octave、R、Numpy 和 LAPACK 在同一矩阵上产生不同的 SVD 结果?

    我使用 Octave 和 R 通过一个简单的矩阵来计算 SVD 并得到两个不同的答案 代码如下 R gt a lt matrix c 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
  • JIT代码生成技术

    虚拟机如何动态生成本机机器代码并执行它 假设您可以弄清楚想要发出的本机机器操作码是什么 那么如何实际运行它呢 它是否像将助记符指令映射到二进制代码 将其填充到 char 指针中并将其转换为函数并执行一样hacky 或者您会生成一个临时共享库
  • fft 和小波

    我可以使用 fft 获取加载的 1 秒音频文件的频率 相位和幅度 并重新创建它 我现在想做的是找出每个频率在 1 秒音频文件中的开始位置和结束位置 并将数据放入数组中 示例 100hz 从 0 23 秒到 0 34 秒开始 104 34hz
  • MATLAB 求最大值一个结构体的

    我试图找到结构的最大值但是max tracks matrix 不起作用 它给我以下错误 使用 horzcat 时出错 CAT 论证维度不一致 你有想法吗 这是我的结构的样子 tracks 1x110470 struct array with
  • 在 64 位 Windows 计算机上使用 32 位 com 运行 32 位应用程序

    我有一个使用 C COM 对象的 C 应用程序 两者都构建在 32 位计算机上 现在我必须在 64 位机器上运行它们 我注册了COM对象 在计算机 hkey classes root wow6432node clsid xxx 下的寄存器中
  • Angular 2 引导选项 - AOT 与 JIT

    刚开始使用 Angular 2 Angular 2 中的各种 Bootstrapping 选项有哪些 为什么当我进行更改并刷新时 index html 只需要很少的时间来检索 HTML 标记 它们之间的区别 有两种选择 动态引导 使用的编译
  • PyPy 明显慢于 CPython

    我一直在测试我制作的缓存系统 其目的是加速 Django Web 应用程序 它将所有内容存储在内存中 根据 cProfile 我的测试中的大部分时间都花在 QuerySet clone 内 结果证明效率非常低 考虑到实现 这实际上并不奇怪
  • 从 Octave 导出的图中具有透明背景

    我在 Win 10 下使用便携式 Octave 5 1 0 我的意思是写一个具有透明背景的 png 绘图 免责声明 这个问题与下面链接的两个问题类似 我选择了提出当前不同的问题 https meta stackoverflow com qu

随机推荐

  • 用于访问另一个域上的文件的 CORS 标头

    我正在尝试在 Codepen 上创建一个音频可视化程序 我使用 apache 创建了自己的 Ubuntu Web 服务器 它允许我直接访问以修改服务器的标头和配置 虽然浏览器可以访问不同域上的文件 但它需要特殊的 CORS 标头来读取音频中
  • 无法连接到 android 5.1 上的本机本地套接字

    我有命令行工具 它发送广播并等待结果 服务器代码 错误处理省略 int makeAddr const char name struct sockaddr un pAddr socklen t pSockLen int nameLen str
  • 某些象形文字语言中的字计数器?

    是否有任何可用的库用于某些象形文字语言的字数统计 例如 中文 日文 韩文 我发现 MS Word 可以有效地计算这些语言的文本 我可以在 NET 应用程序中添加对 MS Word 库的引用来实现此功能吗 或者还有其他解决方案可以达到这个目的
  • 类型错误:第一个参数必须是可调用的,defaultdict

    错误来自publishDB defaultdict defaultdict 我想制作一个像这样的数据库 subject1 student id assignemt1 marks assignment2 marks finals marks
  • 耙子中止! ActiveRecord::Base:Class 的未定义方法“migration_error=”

    我正在 Ruby on Rails 上开发项目 到目前为止 我使用 Rails 4 一切都很好 然后我遇到了 gem 的无能问题 我决定回滚到 Rails 3 更改了 Gemfile 删除了 Gemfile lock 所有 Rails 安装
  • Play WS API:限制请求速率

    我正在使用异步 Play WS Scala API 来查询 RESTful 服务 我想知道如何处理List包含要通过以下方式调用的请求 URLWSClient 但每秒不得超过 1 个请求 该服务允许每个客户端每秒 仅 1 个请求 从逻辑的角
  • 尝试使用 Github Actions 复制存储库时出现身份验证错误

    我有一堆使用 Azure Pipelines 进行 CI CD 的存储库 我现在正在尝试将其移植到 Github Actions 这是我正在做的第一个工作 https github com Azure AzureAuth tree fix
  • 快速跨平台 C/C++ 图像处理库

    有哪些用于图像处理的跨平台和高性能图像库 调整大小和查找颜色 色调直方图 无需图形用户界面 这是针对 C C 的 到目前为止我已经研究过 OpenCV GIL 作为 Boost 的一部分 DevIL CImg 我的问题 我上面列出的性能如何
  • 将回形针图像复制到 Rails 4 中的新记录

    我的网站用于发布专辑评论 称为 Pin 图 引脚模型具有以下属性 艺术家 年份 标题 排名 描述和 图像 该图像使用 Paperclip 并存储在 Amazon S3 上 如果重要的话 我试图允许用户查看其他用户发布的评论 并单击链接以更简
  • java中的超链接

    有没有什么方法可以在Java中的JTextArea中创建可点击的超链接 如果您绝对想使用 jTextArea 可以执行此操作的一种方法是获取 User MouseClick x y 位置 然后从那里进行处理 然而 更简单的方法是使用 JEd
  • 如何在android中获取画布中屏幕尺寸的大小?

    我能够在正常活动中获取屏幕尺寸 但我需要在画布视图中获取屏幕尺寸并根据它进行操作 上面的任何片段都会有所帮助 谢谢 我得到了 widthPixels heightPixels 使用这个 DisplayMetrics metrics getB
  • 在 WooCommerce 中以编程方式对保存的信用卡收费

    我正在 WooCommerce 中以编程方式创建订单 并且需要向默认保存的信用卡收费 我正在使用 WooCommerce stripe 插件 并已弄清楚如何设置正确的付款方式 但无法弄清楚如何实际向卡收费 下面是我到目前为止的代码 orde
  • Grails 使用 config.properties 值到 BuildConfig.groovy 中

    我有一个config properties文件下conf目录 并在上面的文件中有一个条目 如下所示 grails tomcat version 2 2 4 我如何使用这个值BuildConfig groovy file Suppose pl
  • iPhone - 用于文本转语音功能的 API [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想知道iPhone是否有支持文本转语音功能的API 我环顾四周但没有找到任何东西 所以只是想确认一下 期待中感谢 我曾经遇到过这个问题 并在 iP
  • 约束编程:多个工人的调度

    我是约束编程的新手 我想这是一个简单的问题 但我无法解决它 问题是这样的 我们有多台机器 N 每台机器的资源都是有限的 比如说内存 所有机器的资源可以相同 我们有 T 个任务 每个任务都有一个持续时间 并且每个任务都需要一定量的资源 只要不
  • 加密 url 中 id 的好方法是什么?

    我一直在网上查看有关在 url 中加密 id 的解决方案的文章 我已经尝试过基本的编码解码 但是在下一页上解码时遇到问题 我在其中进行选择 其中 id 解码的 id 它不会从表中获取正确的用户 我的链接 My link a href Vie
  • file_put_contents 正在向代码添加反斜杠

    I use file get contents file put contents 加载和保存 css文件 保存加载的文件后file put contents 函数将转义引号 如何防止这种情况 file pathto base css ta
  • 使用“getclobval()”执行 oracle 过程时出现“无效字符错误”

    以下过程可以成功编译ctrll S 显示有效 但执行时会抛出错误 Invalid character error执行此操作时procedure on SQL DEVELOPER 我没有看到任何地方有无效字符 以下是创建表并插入值的代码 CR
  • 如何创建透明框架集?

    我想创建一个框架集中包含 3 个框架的页面 My Home html是主页 有3个框架 分别是Header html Announcement php and Footer html
  • Octave JIT 编译器。当前状态和展示效果的最小示例

    我听到有关 Octave 实验性 JIT 编译器功能的非常矛盾的信息 从 这是一个玩具项目 但它基本上不起作用 到 我使用了它 并且我获得了显着的加速 我知道为了成功使用它 需要 编译八度与 enable jit在配置时 启动八度音程 ji