Skip to content

Instantly share code, notes, and snippets.

View Lyken17's full-sized avatar
🎯
Focusing

Ligeng Zhu Lyken17

🎯
Focusing
View GitHub Profile
import torch
from torch import nn
# net = nn.Linear(500, 500)
# input = torch.randn(64, 500)
net = nn.Conv2d(3, 3, kernel_size=3, padding=1)
input = torch.randn(1, 3, 32, 32)
# only calculate input grad, prints ('_saved_mat2', torch.Size([500, 500]))
@Lyken17
Lyken17 / gist:3ce9c32b5e6383b71c84869022de7ebf
Created April 20, 2023 02:00
alpaca_8xA6000_error_script
# e408b27
MODEL=facebook/opt-6.7b
torchrun --nproc_per_node=8 --master_port=24567 train.py \
--model_name_or_path $MODEL \
--data_path ./alpaca_data.json \
--bf16 True \
--output_dir ./output/$MODEL \
--num_train_epochs 3 \
--per_device_train_batch_size 2 \
@Lyken17
Lyken17 / flash_attention.py
Created September 30, 2022 10:08
flash attention
batch_size, seq_length, embed_dim = x.size()
# B, T, D
qkv = self.qkv_proj(x) # B, T, 3xE
# head_dim = embed_dim // num_heads
# Separate Q, K, V from linear output
qkv = qkv.reshape(batch_size, seq_length, self.num_heads, 3 * self.head_dim) # B, T, H, 3xHD
qkv = qkv.permute(0, 2, 1, 3) # B, H, T, 3xHD
q, k, v = qkv.chunk(3, dim=-1) # B, H, T, HD
@Lyken17
Lyken17 / relay_pass_example.py
Created August 15, 2022 17:05
relay_pass_replace_add-div_to_sub-sub
import numpy as np
from collections import Counter
import tvm
from tvm import relay
from tvm.relay import ExprFunctor, ExprMutator, ExprVisitor
from tvm.relay.expr_functor import ExprMutator, Call
from tvm.relay.dataflow_pattern import wildcard, is_op, is_constant, is_expr, rewrite, DFPatternCallback
@Lyken17
Lyken17 / relay_ast_example.py
Created August 15, 2022 17:05
relay_ast_replace_div2mul
import numpy as np
from collections import Counter
import tvm
from tvm import relay
# from tvm.relay import ExprFunctor, ExprMutator, ExprVisitor
from tvm.relay.expr_functor import ExprMutator, Call
@Lyken17
Lyken17 / relay_replace_op.py
Created August 5, 2022 07:03
Replace OPs in relay pass
import numpy as np
from collections import Counter
import tvm
from tvm import relay
from tvm.relay import ExprFunctor, ExprMutator, ExprVisitor
from tvm.relay.expr_functor import ExprMutator, Call
import os, sys
import os.path as osp
import math
import numpy as np
import torch
import torch.nn as nn
from torchvision import transforms, datasets
from ofa.model_zoo import ofa_net
@Lyken17
Lyken17 / snpe_profile.py
Last active August 14, 2022 11:38
SNPE Profile
import torch
import torch.nn as nn
import torchvision
from torchvision import models
batch = 1
dim = 3
res = 224
# dense update
# forward
input: 1, 48, 8, 8
weight: 240, 48, 1, 1
output: 1, 240, 8, 8
# input
# (n, c, h, w) => (1, n * c, h, w)
input_1 = 1, 48, 8, 8
import os, os.path as osp
import json
from copy import deepcopy
import numpy as np
from copy import deepcopy
import torch
import torch.nn as nn