CARVIEW |
Select Language
HTTP/2 200
date: Fri, 25 Jul 2025 06:40:27 GMT
content-type: text/html; charset=utf-8
cache-control: no-cache
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
referrer-policy: no-referrer-when-downgrade
server-timing: pull_request_layout-fragment;desc="pull_request_layout fragment";dur=262.771004,conversation_content-fragment;desc="conversation_content fragment";dur=525.768555,conversation_sidebar-fragment;desc="conversation_sidebar fragment";dur=321.249508,nginx;desc="NGINX";dur=1.334682,glb;desc="GLB";dur=107.469565
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: a2eb102
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=zafNNMpiKfOnAGvD7h1cg2hnIU7FKDBn8vEn44DI6FwoQfTL62SsxDwnh4YB%2B4DDvrITc06ODLQoBqm677jNMZz5fp5ykVdesGZnOiFBFbUGg%2Bkd3LXN%2Bnu19QYv5TlvyE%2BmjKfxPoswfe29aWy%2FZEEUeO5yGhBb5dDUOPcahF5YdD3J0kJ8atW8zADPj1Mwz6aAW%2FUflsqjGnzf5XOo4XFRB2QaDw27NMNZPH4b0Xbxhghoo9RjBVJzadtklioPz5f%2BaWcsbzYdezHvHyeyJA%3D%3D--yIcLQuhz7ShueZV2--1hk6O%2FPB%2FRGnaRmlEzlZNQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.2050559479.1753425626; Path=/; Domain=github.com; Expires=Sat, 25 Jul 2026 06:40:26 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Sat, 25 Jul 2026 06:40:26 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: D7F4:23280:392F91:475FAB:688326DA
[SOT][3.11] Combine PRECALL and CALL as a super instruction in simulation by SigureMo · Pull Request #60280 · PaddlePaddle/Paddle · GitHub
SigureMo
deleted the
sot/combine-precall-and-call-as-a-super-instruction-in-simulation
branch
December 25, 2023 03:41
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
[SOT][3.11] Combine PRECALL and CALL as a super instruction in simulation #60280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
SigureMo
merged 6 commits into
PaddlePaddle:develop
from
cattidea:sot/combine-precall-and-call-as-a-super-instruction-in-simulation
Dec 25, 2023
Merged
[SOT][3.11] Combine PRECALL and CALL as a super instruction in simulation #60280
SigureMo
merged 6 commits into
PaddlePaddle:develop
from
cattidea:sot/combine-precall-and-call-as-a-super-instruction-in-simulation
Dec 25, 2023
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2742195759
approved these changes
Dec 25, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Wanglongzhi2001
pushed a commit
to Wanglongzhi2001/Paddle
that referenced
this pull request
Jan 7, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
You can’t perform that action at this time.
PR types
Bug fixes
PR changes
Others
Description
Python 3.11 #59860 针对 PRECALL 的解决方案仍然有问题,当原始字节码如下时
#59860 之前会生成如下字节码
#59860 的结论是 PRECALL 后面一定要跟随 CALL,因为如果后面不是 CALL 在 PRECALL builtin 特化时一定会报错
#59860 的解决方案是移除 copy 的 PRECALL,即
但这又有了另一个问题,就是模拟时其实 PRECALL 已经跑完了,但 copy 代码部分并没有 PRECALL,那么在用 VariableLoader load var 的时候模拟执行 Variable 和真实执行 PyObject 就对不上,其关键在于无法判断一个 Variable 对应的真实值是否为 NULL,这个问题类似 #58956
Note
值得注意的是,这里的关键并不是后面生成的 CALL 前面没有 PRECALL,没有 PRECALL 其实是没有任何问题的,也尝试过在 CALL 前面添加 PRECALL 是没有效果的,因为问题不在这里
其实这里关键是 PRECALL 和 CALL 分开导致 CALL 打断的时候模拟时候已经有了 PRECALL 的副作用,如果能够自动恢复这个副作用就没有任何问题了。而对于单个字节码来说,我们本身就有这样的机制来恢复,另一方面,从模拟的角度来说,PRECALL 和 CALL 永远是一起的,它们不应该独立分析。因此将它们整合成一个字节码来分析就可以保证两者的统一,PRECALL 和 CALL 发生 breakgraph 时会回退到 PRECALL 之前的状态,生成代码时也会将 PRECALL 和 CALL 一起生成
这里参考了 Python 3.11 中的超指令(super-instruction)的概念,在模拟执行时将 PRECALL+CALL 融合成
PRECALL__CALL
(命名也是参考超指令的命名规范,比如LOAD_CONST__LOAD_FAST
)PCard-66972