4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarmInstructions for Julia back end Also a lot of advanced tricks in the Julia back end *抽象指令 (没有实际指令) Julia“生成函数” Python 字节码 JuVM虚拟栈机 (具体指令集) 抽象机器 (只规定语义) JuVM栈机指令 Python JIT 函数包装 Julia AST/CodeInfo Instructions for Julia Back End Instructions for Julia Back End JuVM: An implementation of our AM Machine Runner: 从AM到VM Julia Code Generation Julia Type Level Encoding 和Python不一样, Julia在运行时不能随意地eval。 Julia在运行时不能随意地eval。 生成的Julia代码需要经过一些tricky的处理, 也就是将AST编码为Julia类型, 然后 使用Julia独特的基于类型的Staging代码生成… A long story here out of Python world, see GeneralizedGenerated.jl or the paper of Zygote.jl for more details. Why based0 码力 | 30 页 | 8.04 MB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查 Linux users) Just In Time The Restrain Python JIT 为什么编译器从字节码开始着手? 栈机(stack machine)语义的优化问题? Julia后端和Cython后端的差别? 栈机到基于寄存器(register based)的 语义,控制流分析,SSA 和 Φ 节点和 栈机语义消除。 Cython JIT 基础架构。 为什么编译器从字节码开始着手 那可不可以不翻译? 可以。 然后你要在编译时模拟栈的Push Pop。 Julia后端就是这样做的。 导致For循环编译后并不快。 而基本上编译器0优化的Cython端, 你模拟栈后, 还远不如Python解释器快, 所以必须写分析去掉栈机语义。 那用Julia后端就可以不写了? 来谈后端的问题。 Julia Cython 常见性能提升 100x 1-10x 小函数JIT 比Python慢1000倍 比Python快50% 启动时间 10s以上, “JAOT” 没有,调编译器快 循环折叠 有 有 Debug现场? 每次打log等待30s 瞬秒(ms级) JIT 后端问题 同时, 由于Julia端目前固有的问题,不支持动态链接编译的 Python(例如Anaconda Python), hmmmmm 我投Cython亿票, debug福音。跨语言含JAOT的debug是屑。 Cython问题0 码力 | 43 页 | 10.71 MB | 1 年前3
Jupyter Notebook 5.1.0 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands. When a code cell is executed, code that it contains language kernel to run in the Notebook server enables your server to run other languages, like R or Julia. 4.3 Notebook front-end client • How front-end configuration works – Example: Changing the notebook’s are kernels available in the following languages: • Python(https://github.com/ipython/ipython) • Julia (https://github.com/JuliaLang/IJulia.jl) • R (https://github.com/takluyver/IRkernel) • Ruby (https://github0 码力 | 128 页 | 1.72 MB | 1 年前3
Jupyter Notebook 5.0.0 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands. When a code cell is executed, code that it contains language kernel to run in the Notebook server enables your server to run other languages, like R or Julia. 4.3 Notebook front-end client • How front-end configuration works – Example: Changing the notebook’s are kernels available in the following languages: • Python(https://github.com/ipython/ipython) • Julia (https://github.com/JuliaLang/IJulia.jl) • R (https://github.com/takluyver/IRkernel) • Ruby (https://github0 码力 | 129 页 | 1.76 MB | 1 年前3
Jupyter Notebook 5.2.2 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands. When a code cell is executed, code that it contains language kernel to run in the Notebook server enables your server to run other languages, like R or Julia. 4.3 Notebook front-end client • How front-end configuration works – Example: Changing the notebook’s are kernels available in the following languages: • Python(https://github.com/ipython/ipython) • Julia (https://github.com/JuliaLang/IJulia.jl) • R (https://github.com/IRkernel/IRkernel) • Ruby (https://github0 码力 | 129 页 | 1.73 MB | 1 年前3
Jupyter Notebook 5.0.0 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands [https://ipython.readthedocs.io/en/stable/interactive/tutorial html#installing-kernels] to run in the Notebook server enables your server to run other languages, like R or Julia. Notebook front-end client How front-end configuration works Example: Changing the notebook’s default there are kernels available in the following languages: Python(https://github.com/ipython/ipython) Julia (https://github.com/JuliaLang/IJulia.jl) R (https://github.com/takluyver/IRkernel) Ruby (https://github0 码力 | 184 页 | 4.40 MB | 1 年前3
Jupyter Notebook 5.1.0 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands [https://ipython.readthedocs.io/en/stable/interactive/tutorial html#installing-kernels] to run in the Notebook server enables your server to run other languages, like R or Julia. Notebook front-end client How front-end configuration works Example: Changing the notebook’s default there are kernels available in the following languages: Python(https://github.com/ipython/ipython) Julia (https://github.com/JuliaLang/IJulia.jl) R (https://github.com/takluyver/IRkernel) Ruby (https://github0 码力 | 184 页 | 4.36 MB | 1 年前3
Jupyter Notebook 5.2.2 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands [https://ipython.readthedocs.io/en/stable/interactive/tutorial kernel.html] to run in the Notebook server enables your server to run other languages, like R or Julia. Notebook front-end client How front-end configuration works Example: Changing the notebook’s default there are kernels available in the following languages: Python(https://github.com/ipython/ipython) Julia (https://github.com/JuliaLang/IJulia.jl) R (https://github.com/IRkernel/IRkernel) Ruby (https://github0 码力 | 183 页 | 4.36 MB | 1 年前3
Jupyter Notebook 5.4.1 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands. When a code cell is executed, code that it contains language kernel to run in the Notebook server enables your server to run other languages, like R or Julia. 4.3 Notebook front-end client • How front-end configuration works – Example: Changing the notebook’s are kernels available in the following languages: • Python(https://github.com/ipython/ipython) • Julia (https://github.com/JuliaLang/IJulia.jl) • R (https://github.com/IRkernel/IRkernel) • Ruby (https://github0 码力 | 134 页 | 1.77 MB | 1 年前3
Jupyter Notebook 5.4.0 Documentationcompletion. By default, the language associated to a code cell is Python, but other languages, such as Julia and R, can be handled using cell magic commands. When a code cell is executed, code that it contains language kernel to run in the Notebook server enables your server to run other languages, like R or Julia. 4.3 Notebook front-end client • How front-end configuration works – Example: Changing the notebook’s are kernels available in the following languages: • Python(https://github.com/ipython/ipython) • Julia (https://github.com/JuliaLang/IJulia.jl) • R (https://github.com/IRkernel/IRkernel) • Ruby (https://github0 码力 | 134 页 | 1.77 MB | 1 年前3
共 66 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













