WIP: Feature Quantization Scaffolding#682
Conversation
|
/unit_test |
GiGL Automation@ 20:23:16UTC : 🔄 @ 20:25:02UTC : ✅ Workflow completed successfully. |
GiGL Automation@ 20:23:18UTC : 🔄 @ 20:28:19UTC : ❌ Workflow failed. |
GiGL Automation@ 20:23:19UTC : 🔄 @ 20:33:56UTC : ✅ Workflow completed successfully. |
| "Cannot materialize quantized features with " | ||
| f"{dequantized.size(0)} rows into existing x with {x.size(0)} rows." | ||
| ) | ||
| node_store.x = torch.cat([x, dequantized], dim=1) |
There was a problem hiding this comment.
Here is where we'd need to scatter write raw and quantized node features if preserving original feature order is a requirement.
|
/unit_test |
GiGL Automation@ 22:21:08UTC : 🔄 @ 23:37:31UTC : ✅ Workflow completed successfully. |
GiGL Automation@ 22:21:08UTC : 🔄 @ 22:29:50UTC : ✅ Workflow completed successfully. |
GiGL Automation@ 22:21:08UTC : 🔄 @ 22:22:54UTC : ✅ Workflow completed successfully. |
|
|
||
|
|
||
| @dataclass | ||
| class FeatureQuantizationMetadata: |
There was a problem hiding this comment.
can be made frozen, as in the scatter pr
| for ntype, fut in nfeat_fut_dict.items(): | ||
| nfeats = await wrap_torch_future(fut) | ||
| result_map[f"{as_str(ntype)}.nfeats"] = nfeats | ||
| if self.dist_node_quantized_feature is not None: |
There was a problem hiding this comment.
Why don't we fire off the async_get concurrently for all feature stores simulatenously (when not using synchronous path)...
There was a problem hiding this comment.
Also, it might be nice to add debug logs here that report how many bytes of transfer occurred for each feature (at the least, so that we can confirm the expected reduction when quantization is enabled)
TODO