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

Model architectures cannot be executed #17

Open
chart21 opened this issue May 20, 2024 · 0 comments
Open

Model architectures cannot be executed #17

chart21 opened this issue May 20, 2024 · 0 comments

Comments

@chart21
Copy link

chart21 commented May 20, 2024

Defining the following architectures for LeNet and AlexNet (as used by CryptGPU) result in an error on size mismatch on layer 4 even though the architectures run in other frameworks. Do you have an idea how to fix this?

{
    "name": "LeNet",
    "dataset": "MNIST",
    "batch_size": 128,
    "input_size": 784,
    "num_classes": 10,
    "model": [
        {
            "layer": "cnn",
            "input_hw": [28, 28],
            "in_channels": 1,
            "out_channels": 6,
            "filter_hw": [5, 5],
            "stride": 1,
            "padding": 2
        },
        {
            "layer": "relu",
            "input_dim": 4704
        },
        {
            "layer": "averagepool",
            "input_hw": [28, 28],
            "in_channels": 6,
            "pool_hw": [2, 2],
            "stride": 2
        },
        {
            "layer": "cnn",
            "input_hw": [14, 14],
            "in_channels": 6,
            "out_channels": 16,
            "filter_hw": [5, 5],
            "stride": 1,
            "padding": 0
        },
        {
            "layer": "relu",
            "input_dim": 2240
        },
        {
            "layer": "averagepool",
            "input_hw": [10, 10],
            "in_channels": 16,
            "pool_hw": [2, 2],
            "stride": 2
        },
        {
            "layer": "fc",
            "input_dim": 400,
            "output_dim": 120
        },
        {
            "layer": "relu",
            "input_dim": 120
        },
        {
            "layer": "fc",
            "input_dim": 120,
            "output_dim": 84
        },
        {
            "layer": "relu",
            "input_dim": 84
        },
        {
            "layer": "fc",
            "input_dim": 84,
            "output_dim": 10
        }
    ]
}
----------------------------------------------
(1) CNN Layer             28 x 28 x 1
                          5 x 5         (Filter Size)
                          1 , 2         (Stride, padding)
                          1             (Batch Size)
                          28 x 28 x 6   (Output)
----------------------------------------------
(2) ReLU Layer            1 x 4704
----------------------------------------------
(3) Averagepool Layer     28 x 28 x 6
                          2             (Pooling Size)
                          2             (Stride)
                          1             (Batch Size)
----------------------------------------------
(4) CNN Layer             14 x 14 x 6
                          5 x 5         (Filter Size)
                          1 , 0         (Stride, padding)
                          1             (Batch Size)
                          10 x 10 x 16  (Output)
----------------------------------------------
(5) ReLU Layer            1 x 2240
----------------------------------------------
(6) Averagepool Layer     10 x 10 x 16
                          2             (Pooling Size)
                          2             (Stride)
                          1             (Batch Size)
----------------------------------------------
(7) FC Layer              400 x 120
                          1              (Batch Size)
----------------------------------------------
(8) ReLU Layer            1 x 120
----------------------------------------------
(9) FC Layer              120 x 84
                          1              (Batch Size)
----------------------------------------------
(10) ReLU Layer           1 x 84
----------------------------------------------
(11) FC Layer             84 x 10
                          1              (Batch Size)


 -- Epoch 0 (3 iterations, log_lr = 3) --
iteration,0
layer 0
cnn,fw activation,min,-1.767334e+00,avg,-1.063008e-02,max,1.515381e+00
layer 1
relu,fw activation,min,0.000000e+00,avg,8.892500e-02,max,1.515381e+00
layer 2
avgpool,fw activation,min,0.000000e+00,avg,8.888982e-02,max,1.299316e+00
layer 3
cnn,fw activation,min,-1.362305e+00,avg,-5.258331e-02,max,1.286377e+00
layer 4
piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with T = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thruT = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsst::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsigned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() &&igned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() && x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
 x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with T = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsigned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() && x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
^C./files/samples/localhost_runner.sh: line 6: 927560 Aborted   
{
    "name": "AlexNet_CryptGpu",
    "dataset": "CIFAR-10",
    "batch_size": 128,
    "input_size": 3072,
    "num_classes": 10,
    "model": [
        {
            "layer": "cnn",
            "input_hw": [32, 32],
            "in_channels": 3,
            "out_channels": 96,
            "filter_hw": [11, 11],
            "stride": 4,
            "padding": 9
        },
        {
            "layer": "relu",
            "input_dim": 9600
        },
        {
            "layer": "averagepool",
            "input_hw": [10, 10],
            "in_channels": 96,
            "pool_hw": [3, 3],
            "stride": 2
        },
        {
            "layer": "cnn",
            "input_hw": [4, 4],
            "in_channels": 96,
            "out_channels": 256,
            "filter_hw": [5, 5],
            "stride": 1,
            "padding": 1
        },
        {
            "layer": "relu",
            "input_dim": 4096
        },
        {
            "layer": "averagepool",
            "input_hw": [4, 4],
            "in_channels": 256,
            "pool_hw": [2, 2],
            "stride": 1
        },
        {
            "layer": "cnn",
            "input_hw": [3, 3],
            "in_channels": 256,
            "out_channels": 384,
            "filter_hw": [3, 3],
            "stride": 1,
            "padding": 1
        },
        {
            "layer": "relu",
            "input_dim": 3456
        },
        {
            "layer": "cnn",
            "input_hw": [3, 3],
            "in_channels": 384,
            "out_channels": 384,
            "filter_hw": [3, 3],
            "stride": 1,
            "padding": 1
        },
        {
            "layer": "relu",
            "input_dim": 3456
        },
        {
            "layer": "cnn",
            "input_hw": [3, 3],
            "in_channels": 384,
            "out_channels": 256,
            "filter_hw": [3, 3],
            "stride": 1,
            "padding": 1
        },
        {
            "layer": "relu",
            "input_dim": 2304
        },
        {
            "layer": "fc",
            "input_dim": 2304,
            "output_dim": 256
        },
        {
            "layer": "relu",
            "input_dim": 256
        },
        {
            "layer": "fc",
            "input_dim": 256,
            "output_dim": 256
        },
        {
            "layer": "relu",
            "input_dim": 256
        },
        {
            "layer": "fc",
            "input_dim": 256,
            "output_dim": 10
        }
    ]
}
----------------------------------------------
(1) CNN Layer             32 x 32 x 3
                          11 x 11       (Filter Size)
                          4 , 9         (Stride, padding)
                          1             (Batch Size)
                          10 x 10 x 96  (Output)
----------------------------------------------
(2) ReLU Layer            1 x 9600
----------------------------------------------
(3) Averagepool Layer     10 x 10 x 96
                          3             (Pooling Size)
                          2             (Stride)
                          1             (Batch Size)
----------------------------------------------
(4) CNN Layer             4 x 4 x 96
                          5 x 5         (Filter Size)
                          1 , 1         (Stride, padding)
                          1             (Batch Size)
                          2 x 2 x 256   (Output)
----------------------------------------------
(5) ReLU Layer            1 x 4096
----------------------------------------------
(6) Averagepool Layer     4 x 4 x 256
                          2             (Pooling Size)
                          1             (Stride)
                          1             (Batch Size)
----------------------------------------------
(7) CNN Layer             3 x 3 x 256
                          3 x 3         (Filter Size)
                          1 , 1         (Stride, padding)
                          1             (Batch Size)
                          3 x 3 x 384   (Output)
----------------------------------------------
(8) ReLU Layer            1 x 3456
----------------------------------------------
(9) CNN Layer             3 x 3 x 384
                          3 x 3         (Filter Size)
                          1 , 1         (Stride, padding)
                          1             (Batch Size)
                          3 x 3 x 384   (Output)
----------------------------------------------
(10) ReLU Layer           1 x 3456
----------------------------------------------
(11) CNN Layer            3 x 3 x 384
                          3 x 3         (Filter Size)
                          1 , 1         (Stride, padding)
                          1             (Batch Size)
                          3 x 3 x 256   (Output)
----------------------------------------------
(12) ReLU Layer           1 x 2304
----------------------------------------------
(13) FC Layer             2304 x 256
                          1              (Batch Size)
----------------------------------------------
(14) ReLU Layer           1 x 256
----------------------------------------------
(15) FC Layer             256 x 256
                          1              (Batch Size)
----------------------------------------------
(16) ReLU Layer           1 x 256
----------------------------------------------
(17) FC Layer             256 x 10
                          1              (Batch Size)
Error opening training data file at files/CIFAR-10/train_data
Error opening training label file at files/CIFAR-10/train_labels
Error opening test data file at files/CIFAR-10/test_data
Error opening test label file at files/CIFAR-10/test_label
TRAINING, EPOCHS = 1 ITERATIONS = 3

 == Training (1 epochs) ==

 -- Epoch 0 (3 iterations, log_lr = 3) --
iteration,0
layer 0
cnn,fw activation,min,0.000000e+00,avg,0.000000e+00,max,0.000000e+00
layer 1
relu,fw activation,min,0.000000e+00,avg,0.000000e+00,max,0.000000e+00
layer 2
avgpool,fw activation,min,0.000000e+00,avg,0.000000e+00,max,0.000000e+00
layer 3
cnn,fw activation,min,0.000000e+00,avg,0.000000e+00,max,0.000000e+00
layer 4
piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with T = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thruT = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsst::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsigned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() &&igned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() && x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
 x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
piranha: src/nn/../mpc/RSS.inl:545: void selectShare(const RSS<T, I>&, const RSS<T, I2>&, const RSS<U, I3>&, RSS<T, I4>&) [with T = long unsigned int; U = unsigned char; I = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I2 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >; I3 = thrust::detail::normal_iterator<thrust::device_ptr<unsigned char> >; I4 = thrust::detail::normal_iterator<thrust::device_ptr<long unsigned int> >]: Assertion `x.size() == y.size() && x.size() == b.size() && x.size() == z.size() && "RSS selectShare input size mismatch"' failed.
./files/samples/localhost_runner.sh: line 6: 946446 Aborted      
@chart21 chart21 changed the title Model architectures Model architectures cannot be executed May 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant