Skip to content
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

Header bug fix #1079

Merged
merged 1 commit into from
Oct 15, 2024
Merged

Conversation

metascroy
Copy link
Contributor

Summary: A last minute change created a compile error on the header. This fixes the issue.

Differential Revision: D64370707

Copy link

pytorch-bot bot commented Oct 15, 2024

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/ao/1079

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit 610f80d with merge base 48bc81c (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 15, 2024
@facebook-github-bot
Copy link

This pull request was exported from Phabricator. Differential Revision: D64370707

metascroy added a commit to metascroy/ao that referenced this pull request Oct 15, 2024
Summary:

A last minute change created a compile error on the header.  This fixes the issue.

I also make the header 64 bytes and add a magic number at the start to make it safer in future.

Differential Revision: D64370707
@facebook-github-bot
Copy link

This pull request was exported from Phabricator. Differential Revision: D64370707

@malfet
Copy link

malfet commented Oct 15, 2024

I'm unsure what it fixes to be frank, perhaps better PR description would help clarify what it is trying to fix...

Comment on lines -20 to -21
TORCHAO_CHECK(
version >= 0 && version < 256, "version must be between 0 and 255");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is wrong with this check?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before it existed to make sure version could be packed into a char (since both version/weight_nbit were packed into an unsigned short). But the header now has more space, and version is now an int, so this bound check is no longer needed.

@@ -10,44 +10,47 @@
#include <cassert>
namespace torchao::ops {

enum PackedWeightsFormat : unsigned short {
enum PackedWeightsFormat : int {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this must be a signed type? unsigned int sounds like a better idea. Also enum inside the namespace is oxymoron, please use enum class

Suggested change
enum PackedWeightsFormat : int {
enum class PackedWeightsFormat : uint32_t {

static_assert(sizeof(format) + sizeof(params) == 16);
return 16;
static_assert(sizeof(magic) + sizeof(format) + sizeof(params) == 64);
return 64;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use sizeof(XYZ)?

Suggested change
return 64;
return sizeof(PackedWeightsHeader);

Copy link
Contributor Author

@metascroy metascroy Oct 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this made it clearer that the header is 64 bytes at a glance. I also checked and sizeof(PackedWeightsHeader) = 60, but the serialized size is still 64 bytes (I think because the static magic number doesn't count toward the size).

}

inline void write(void* packed_weights) const {
auto header = (unsigned short*)(packed_weights);
header[0] = (unsigned short)format;
auto header = (int*)(packed_weights);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In C++ better used C++ cast-style ops

Suggested change
auto header = (int*)(packed_weights);
auto header = reinterpret_cast<int*>(packed_weights);

metascroy added a commit to metascroy/ao that referenced this pull request Oct 15, 2024
Summary:

A last minute change created a compile error on the header.  This fixes the issue.

I also make the header 64 bytes and add a magic number at the start to make it safer in future.

Differential Revision: D64370707
@facebook-github-bot
Copy link

This pull request was exported from Phabricator. Differential Revision: D64370707

metascroy added a commit to metascroy/ao that referenced this pull request Oct 15, 2024
Summary:

A last minute change created a compile error on the header.  This fixes the issue.

I also make the header 64 bytes and add a magic number at the start to make it safer in future.

Differential Revision: D64370707
@facebook-github-bot
Copy link

This pull request was exported from Phabricator. Differential Revision: D64370707

Summary:

A last minute change created a compile error on the header.  This fixes the issue.

I also make the header 64 bytes and add a magic number at the start to make it safer in future.

Differential Revision: D64370707
@facebook-github-bot
Copy link

This pull request was exported from Phabricator. Differential Revision: D64370707

metascroy added a commit to metascroy/ao that referenced this pull request Oct 15, 2024
Summary:
Pull Request resolved: pytorch#1079

A last minute change created a compile error on the header.  This fixes the issue.

I also make the header 64 bytes and add a magic number at the start to make it safer in future.

Differential Revision: D64370707
@digantdesai
Copy link
Contributor

Address Nikita's comments before landing, stamping to unblock if you have already done so.

@facebook-github-bot facebook-github-bot merged commit 6ea36c5 into pytorch:main Oct 15, 2024
18 of 19 checks passed
yanbing-j pushed a commit to yanbing-j/ao that referenced this pull request Dec 9, 2024
…at/ folder (pytorch#1076)

* [Hackability Refactor] Move known_model_params under torchchat (pytorch#1073)

* [Hackability Refactor] Migrate CLI call sites to explicitly go through torchchat.py (pytorch#1075)

* [Hackability Refactor] Move model.py underneath torchchat/ (pytorch#1077)

* Move model.py

* Clear out init to avoid package circular import

* [Hackability Refactor] Move select top level docs into folders within torchchat (pytorch#1080)

* [Hackability Refactor] Move the top level util folder into torchchat/utils (pytorch#1079)

* [Hackability Refactor] Move the top level util file into torchchat/utils/

* Cleared out init to avoid packing

* [Hackability Refactor] Collapse gguf_util into gguf_loader (pytorch#1078)

* [Hackability Refactor] Collapse gguf_util into gguf_loader

* Update bad import

* [Hackability Refactor] Move model_config into torchchat/model_config (pytorch#1082)

* [Hackability Refactor] Move cli related files under torchchat/cli (pytorch#1083)

* [Hackability Refactor] Move build/util into torchchat/utils (pytorch#1084)

* [Hackability Refactor] Easy Moves: eval, gguf_loader, quantize, model_dist (pytorch#1085)

* [Hackability Refactor] Easy Cheap Moves: eval, gguf_loader, quantize, model_dist

* Update eval.py call sites that slipped through the initial pass

* [Hackability Refactor] Update missed direct file calls to use torchchat.py (pytorch#1088)

* [Hackability Refactor] Move export and generate under torchchat/ (pytorch#1089)

* [Hackability Refactor] Move scripts under torchchat/utils (pytorch#1090)

* [Hackability Refactor] Move scripts under torchchat/utils

* Fix install script for AOTI

* Update referenced path in build_android

* Adding missing utils path

* Add another layer for torchchat

* Move the source command depending on if TC root is defined

* [Hackability Refactor] Move installation related files into install/ (pytorch#1081)

* [Hackability Refactor] Move installation related files into install/

* Fix install req path

* Test fix with install path for bash

* Debug messages

* Remove changes to install in et_python_libs

* Remove debug echo

* Fix pin path for et

* [Hackability Refactor] Restricted Lint (pytorch#1091)

* [Hackability Refactor] Removing __main__ from export/generate/eval (pytorch#1092)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants