Adding files
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# Copyright lowRISC contributors.
|
||||
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Generate a baremetal application
|
||||
|
||||
# Name of the program $(PROGRAM).c will be added as a source file
|
||||
|
||||
PROGRAM = lenet5_mnist
|
||||
PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
# Any extra source files to include in the build. Use the upper case .S
|
||||
# extension for assembly files
|
||||
EXTRA_SRCS :=
|
||||
|
||||
include ${PROGRAM_DIR}/../../common/common.mk
|
||||
@@ -0,0 +1,316 @@
|
||||
#ifndef CNN_WEIGHTS_H
|
||||
#define CNN_WEIGHTS_H
|
||||
|
||||
static const int F1[2][5][5][1] = {
|
||||
{
|
||||
{
|
||||
{318767104},
|
||||
{67108864},
|
||||
{1073741824},
|
||||
{201326592},
|
||||
{0}
|
||||
},
|
||||
{
|
||||
{469762048},
|
||||
{4093640704},
|
||||
{1124073472},
|
||||
{1593835520},
|
||||
{469762048}
|
||||
},
|
||||
{
|
||||
{1140850688},
|
||||
{3539992576},
|
||||
{16777216},
|
||||
{3221225472},
|
||||
{889192448}
|
||||
},
|
||||
{
|
||||
{318767104},
|
||||
{1392508928},
|
||||
{268435456},
|
||||
{922746880},
|
||||
{3741319168}
|
||||
},
|
||||
{
|
||||
{1929379840},
|
||||
{1090519040},
|
||||
{218103808},
|
||||
{0},
|
||||
{3288334336}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{3221225472},
|
||||
{3221225472},
|
||||
{268435456},
|
||||
{0},
|
||||
{4026531840}
|
||||
},
|
||||
{
|
||||
{0},
|
||||
{4026531840},
|
||||
{3489660928},
|
||||
{3489660928},
|
||||
{268435456}
|
||||
},
|
||||
{
|
||||
{1073741824},
|
||||
{1879048192},
|
||||
{0},
|
||||
{3221225472},
|
||||
{3221225472}
|
||||
},
|
||||
{
|
||||
{1879048192},
|
||||
{268435456},
|
||||
{1073741824},
|
||||
{1342177280},
|
||||
{4026531840}
|
||||
},
|
||||
{
|
||||
{4026531840},
|
||||
{805306368},
|
||||
{1073741824},
|
||||
{1073741824},
|
||||
{268435456}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static const int F2[4][5][5][2] = {
|
||||
{
|
||||
{
|
||||
{3577954673, 3233808384},
|
||||
{3695300620, 222298112},
|
||||
{874320143, 1019478016},
|
||||
{79970368, 1329856512},
|
||||
{1296105485, 1344012288}
|
||||
},
|
||||
{
|
||||
{3489664067, 386072576},
|
||||
{802864, 18284544},
|
||||
{869350653, 66322432},
|
||||
{2082426957, 3439394816},
|
||||
{3698790653, 818085888}
|
||||
},
|
||||
{
|
||||
{365232193, 335872000},
|
||||
{79704852, 1598291968},
|
||||
{53801984, 4047437824},
|
||||
{12595281, 1343225856},
|
||||
{3223278455, 1359216640}
|
||||
},
|
||||
{
|
||||
{8340572, 201326592},
|
||||
{4148449344, 1128333312},
|
||||
{872611840, 1074724864},
|
||||
{3544989716, 365363200},
|
||||
{1359007760, 1879310336}
|
||||
},
|
||||
{
|
||||
{4231268164, 822149120},
|
||||
{7603201, 1013972992},
|
||||
{3224423743, 214695936},
|
||||
{3691793695, 1172045824},
|
||||
{4093671232, 1023410176}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{5191108, 67960832},
|
||||
{1157628113, 117440512},
|
||||
{222524432, 4047568896},
|
||||
{288621596, 927137792},
|
||||
{193, 3302162432}
|
||||
},
|
||||
{
|
||||
{263383, 336920576},
|
||||
{3226468624, 3306225664},
|
||||
{872480848, 57933824},
|
||||
{3520286931, 262144},
|
||||
{523358273, 1967325184}
|
||||
},
|
||||
{
|
||||
{3289174524, 3339452416},
|
||||
{54744064, 817889280},
|
||||
{3505390033, 3342336},
|
||||
{1392510156, 458752},
|
||||
{835044112, 810745856}
|
||||
},
|
||||
{
|
||||
{983549, 805306368},
|
||||
{1091374336, 1191968768},
|
||||
{1127337988, 318767104},
|
||||
{860625920, 3253993472},
|
||||
{3703770451, 1141047296}
|
||||
},
|
||||
{
|
||||
{8127952, 386072576},
|
||||
{3439611167, 1203961856},
|
||||
{7557319, 340525056},
|
||||
{1342992453, 335544320},
|
||||
{1882263639, 13369344}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{3285992268, 1963130880},
|
||||
{3604531, 207355904},
|
||||
{4047152, 807337984},
|
||||
{1279266049, 51642368},
|
||||
{3753909440, 1144061952}
|
||||
},
|
||||
{
|
||||
{4111663155, 3221487616},
|
||||
{1023528256, 826081280},
|
||||
{3272363072, 335740928},
|
||||
{218891200, 826343424},
|
||||
{1407127553, 24117248}
|
||||
},
|
||||
{
|
||||
{1076965652, 286195712},
|
||||
{272659396, 202440704},
|
||||
{1140077652, 4113563648},
|
||||
{3555983455, 1158742016},
|
||||
{218087424, 3422748672}
|
||||
},
|
||||
{
|
||||
{1899041617, 204800000},
|
||||
{1409757405, 1892417536},
|
||||
{85000448, 1355808768},
|
||||
{3238789363, 1422131200},
|
||||
{3489727744, 1090256896}
|
||||
},
|
||||
{
|
||||
{338744640, 1074790400},
|
||||
{1279333197, 74907648},
|
||||
{21020943, 258998272},
|
||||
{268438640, 1345323008},
|
||||
{810003, 1275265024}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{1279459568, 221446144},
|
||||
{17833040, 1145831424},
|
||||
{3271774268, 1023672320},
|
||||
{1073988816, 858783744},
|
||||
{872432436, 3238854656}
|
||||
},
|
||||
{
|
||||
{222383152, 222298112},
|
||||
{1359017028, 268763136},
|
||||
{1900809247, 809762816},
|
||||
{896549071, 482803712},
|
||||
{399628229, 863830016}
|
||||
},
|
||||
{
|
||||
{863438612, 3452960768},
|
||||
{205259252, 1835008},
|
||||
{3553377475, 3279683584},
|
||||
{285229520, 856883200},
|
||||
{1074071296, 289472512}
|
||||
},
|
||||
{
|
||||
{206034704, 1074724864},
|
||||
{487002572, 1245184},
|
||||
{810823987, 4026728448},
|
||||
{3522174163, 338690048},
|
||||
{1058069555, 290455552}
|
||||
},
|
||||
{
|
||||
{3435201536, 17563648},
|
||||
{339754835, 3290365952},
|
||||
{1895955652, 786432},
|
||||
{365976908, 288555008},
|
||||
{1547714609, 0}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static const int W1[30][100] = {
|
||||
{805372097, 3222024193, 1091572497, 1097728, 221270132, 786640, 343159820, 922763264, 3485782016, 71109696, 1171517684, 201715713, 855650364, 1081394188, 30425908, 87044337, 311315, 201576192, 3408113, 52170752, 3221291073, 98321180, 281329664, 3289386300, 3694922764, 80478208, 3221490896, 1344131076, 3560178896, 873533441, 3426762752, 1073742640, 1079251152, 202116364, 806092807, 1903185728, 16826432, 4026544384, 1929494784, 4353, 286088209, 3263693, 213913840, 50791436, 84149315, 819018755, 4029677636, 1006960640, 868420928, 1367124, 202178772, 17680, 789696, 3197964, 205521664, 838913, 70258689, 205259204, 96468992, 54788147, 1006636352, 29627393, 19922944, 13370125, 805309489, 214417600, 205520908, 290504753, 1145047024, 1164307, 840128, 271581199, 3288797185, 3292598336, 1427575232, 4076864704, 3145920, 805568573, 3221241856, 791301, 4880, 855688977, 1074532400, 16777536, 13644092, 4076917964, 71303168, 3207376, 3279107073, 67420160, 222494720, 1140916224, 201327616, 206372864, 1086607809, 806338880, 5029908, 1097920, 1074790403, 786444},
|
||||
{218108172, 71368771, 3223060548, 1895825725, 68223052, 335556668, 67321916, 823984180, 1908689932, 268436544, 1006682128, 13418496, 3711966976, 4026581264, 323027713, 469769408, 1396968460, 1023431664, 5292036, 16794435, 805326860, 1074594048, 204803084, 1087173632, 84148348, 3690988480, 3224388865, 54607823, 3439592708, 54543296, 805306368, 1019281423, 1074987020, 1006634240, 67235841, 281070787, 1078722685, 117719344, 493899777, 12639424, 51381504, 1145052445, 3284418576, 3221242112, 4026610433, 3222589708, 17564419, 1932545027, 1140920320, 80004100, 822087920, 3703578380, 1090584576, 812715072, 1410072852, 118226944, 1024662784, 1056964693, 1395704835, 3275777, 3704553476, 859204, 22873909, 790545, 275507, 805569292, 1089541120, 3271638029, 54592256, 3435216067, 1883045936, 52556, 810598469, 202113024, 1326189901, 318767107, 1544750020, 271650060, 1946956556, 855884800, 3221565443, 822549716, 251662348, 1048832, 805307485, 1025, 16, 63963139, 3145927, 67110849, 68944689, 470024384, 1410428929, 49356, 67109127, 289669133, 786435, 822284288, 269300544, 72353084},
|
||||
{67129348, 67110724, 251854851, 54529088, 470555648, 1091305492, 1153892380, 4027531317, 84165056, 3318158412, 70452164, 855838784, 16793612, 262400, 53592323, 3338666176, 1073758656, 398674951, 3289652228, 5571407, 5260305, 16778563, 19922995, 1124122743, 3233816337, 67125248, 230768653, 4026847505, 20185109, 1265664, 3552628823, 4368, 71333061, 268454912, 285279249, 1593886656, 285213696, 790720, 868368, 1081083152, 3271569425, 204669169, 1087438092, 16827648, 206635203, 1124883520, 826290255, 1124143120, 18214972, 486814724, 3234137284, 805376847, 1883009076, 848132, 29, 817905668, 1409286160, 319041729, 269222160, 16784640, 87044113, 805376007, 50331712, 16435, 3338683392, 1028677424, 201379868, 3276997424, 869318716, 20185152, 218107328, 67158096, 252494852, 202228736, 1097732, 1142095936, 4043571968, 1342193664, 256114688, 768, 3239055363, 4026815495, 16449, 3224378428, 812699916, 486609136, 30150675, 70582272, 805322753, 850947, 269496320, 268648449, 22024223, 807145732, 1073857856, 1257533, 822145024, 1051648, 71359504, 202116940},
|
||||
{3284927236, 856772624, 3222258496, 1073741891, 822084557, 21758988, 17779724, 16855812, 50709251, 272659568, 51856371, 5243164, 3250850844, 29367315, 1880115024, 1342386192, 16384, 4042260496, 326174016, 805306380, 281032512, 4055974080, 806092851, 272912576, 499910420, 16805911, 1146149900, 1192230913, 50331651, 809238801, 219153157, 818875392, 1078726716, 21770243, 3420353, 1363165681, 1009782976, 1291857921, 4227874816, 51654972, 834876672, 3339768839, 281019137, 3289122560, 922796304, 1929379856, 29426435, 1395703809, 271778835, 1192300748, 197633, 1073742592, 252759040, 22048965, 872419388, 4026810368, 3948660, 1052428, 18022464, 1191985404, 118489861, 817889296, 1073808192, 3145920, 1153496131, 2080444416, 812909312, 805306371, 475272400, 1950354435, 861339712, 17826896, 4123869185, 4194352, 3222017024, 1124073776, 813464897, 3145779, 49411, 872485639, 1291845888, 206586052, 1141640273, 1074839552, 1075577027, 1835988, 282002484, 1125191989, 213959488, 268636416, 118423553, 268448512, 201326607, 3221295364, 474170368, 70537156, 1393819844, 1276368147, 3238248448, 1545400339},
|
||||
{822346768, 1073856768, 4262979, 3233857539, 805634055, 125246720, 282688, 3221277952, 3511877632, 13565952, 268435536, 469762048, 67895299, 858790980, 53477452, 398459120, 3221237772, 1124090304, 1287716864, 323178560, 3145732, 1883249951, 1073812736, 13068, 70336604, 3234004999, 1073811504, 84675600, 4291, 7409411, 268752147, 3422748735, 822083584, 532743231, 13832016, 1396708112, 801792, 71369665, 7352444, 30475571, 876612620, 63717376, 1057964032, 201532, 281023537, 53674956, 3424059444, 201535760, 74448896, 1345323968, 24904785, 51383300, 3305374492, 64028752, 822162196, 3148892, 855651328, 3359812, 22135856, 1006960640, 67178508, 3690987520, 286457916, 2081852, 1141066756, 278736, 1392558336, 1154486288, 71304193, 5243136, 331624528, 1073742657, 3493594115, 71308288, 3309318144, 858980369, 259280, 3540071923, 807141395, 1073856513, 265536, 3224568624, 7352343, 13615364, 872742913, 1342181425, 3271820080, 206504724, 786499, 14468352, 3271766035, 1348, 1074032640, 1305231360, 1057030916, 3222012352, 268435660, 1275331591, 273989648, 352328752},
|
||||
{202436660, 320615427, 3222339644, 30474253, 54208, 3221275120, 65537, 12288, 252457152, 12779532, 3238003763, 53493761, 1342189636, 204538951, 291009, 805310483, 67387585, 67158788, 1362100240, 3277053377, 2081210384, 14475092, 53936128, 53527308, 51186992, 281284611, 805307444, 13776, 15925452, 3422556176, 3250652160, 16826608, 17117644, 281019331, 251661312, 83951620, 225448144, 120897539, 822411264, 3477078855, 1125318672, 338690241, 71156, 202621180, 3569467460, 1069745617, 253497348, 3234087104, 281296947, 4027845712, 264241155, 96469045, 205308688, 201329756, 821850128, 218349827, 808504561, 4093849612, 1275150348, 1347224323, 3289579536, 3253748495, 3221277748, 824115479, 13569232, 269245760, 71258304, 885800384, 281019584, 338690241, 4039114752, 68, 19991553, 4029956295, 269340416, 3503555340, 50343936, 872674048, 1195315139, 875627281, 21959484, 4223059, 1279476164, 297845703, 3288334336, 297800496, 50384913, 117456076, 17633029, 71041284, 4026594320, 12791828, 80154817, 264553269, 68448256, 130039812, 1276182785, 3292790800, 204525776, 4031037443},
|
||||
{71355644, 3184, 1946489103, 4227940352, 205587203, 822097139, 470548675, 84758559, 3540841220, 1136857105, 204783616, 0, 17521, 204501780, 268717308, 1011153920, 805571585, 226307, 1295191055, 923795569, 3272667413, 66909196, 834671040, 3694149632, 817890112, 225443892, 214712320, 1879048195, 1090532403, 204477649, 1421890320, 16845904, 201392435, 805372096, 67122163, 1039155520, 3272768, 868483328, 1280, 17232, 805384192, 1896172736, 1884028996, 4128960, 4094693121, 1287865603, 262208, 826474499, 52675, 1290801361, 251855043, 50540545, 50383884, 1191182533, 214695941, 1026605248, 5311500, 268501264, 1036976144, 323207184, 271582400, 17039375, 265333, 12585996, 4026792960, 3301966848, 52225, 487325891, 1075576832, 1077163248, 805335100, 802816, 3, 3708813313, 246832, 1081394140, 53542912, 53604421, 3305898240, 823348224, 122426189, 3271770140, 3224424451, 1114225, 335674387, 1074003968, 1325449228, 50332465, 5308720, 3304129585, 805306380, 252511244, 3425895180, 245, 1125171200, 3221291777, 805322992, 1275068420, 3222356160, 288371459},
|
||||
{256, 55603324, 297861124, 1894776833, 1124872500, 1078247445, 50676736, 268435476, 4194307, 487338268, 67375552, 1140900868, 822152209, 3146961, 3692049520, 20709635, 16508, 364918212, 1073950721, 809435136, 805355716, 3224850177, 201329665, 4090511364, 199920, 1343033456, 872497152, 74711104, 1073754960, 7556099, 1074790416, 50381572, 3288600588, 3238052109, 1020227588, 790800, 1097880368, 876612804, 805564429, 1196642307, 469762300, 876621895, 805571651, 3221246032, 13895424, 51590400, 339968, 3489665280, 33501440, 788228, 205462593, 71352321, 1101844, 3225448468, 472924977, 817892352, 1946206256, 289407025, 357354561, 67908044, 272372480, 278768, 7680448, 67899392, 12587792, 17564672, 1882264820, 3241150256, 214708272, 3277786180, 3238854131, 58654735, 3223126805, 214958284, 3288335108, 79819776, 208732167, 2088026128, 3225631937, 1144077653, 1236, 892456000, 63111424, 50708813, 1077985485, 2102132749, 268487683, 17236303, 1951690947, 52484, 1073990660, 281084687, 3225686017, 1011811072, 872480768, 63111188, 262400, 789567, 4096802877, 1136918531},
|
||||
{3485782033, 15794196, 3291480076, 274629, 1074016337, 855638272, 1081084957, 3276030979, 270467136, 79764540, 57950208, 1074806848, 817905667, 70254784, 809776176, 1305789236, 3457024, 808717376, 474896, 3691049219, 3288403984, 835584, 805555216, 67112707, 31195188, 3152909, 20976656, 823133184, 96735573, 12780352, 832, 1879101488, 4572620, 70582720, 201328387, 1076953308, 49168, 512211, 3250651420, 49164, 20716560, 20995148, 1089732689, 1879098624, 1053700, 71316292, 2097938499, 50611008, 3293315328, 3288648896, 471285824, 12632068, 848659, 318767171, 835, 1279000577, 4055891968, 200896, 1073807372, 3222025244, 1075777536, 281329856, 1088246789, 1275071511, 131096405, 13634753, 1543520256, 4235513040, 16432, 825299136, 1543535632, 1057177920, 67948564, 67174416, 2083852032, 822346752, 219100160, 470614836, 338955265, 1346682992, 1393345747, 3221226547, 20120000, 520343360, 49153, 16, 1077936156, 3424390151, 3222208516, 80022544, 5255184, 335573008, 67179268, 817901680, 12794880, 786736, 4195264, 230951988, 50607104, 1932738764},
|
||||
{805568719, 264290316, 53592113, 1287659264, 204484608, 3221487617, 72090368, 805306480, 16780288, 4260442884, 1275527427, 4027580485, 16777984, 805355520, 201589761, 67108876, 856431619, 1140966595, 12596416, 858801012, 1076887616, 1290998016, 214111232, 1879523347, 3237170179, 219152576, 54575108, 4027583491, 787248, 4226099, 251920627, 810341124, 271597568, 67109169, 805373008, 3288449111, 4195124, 3234005324, 4077322513, 53498124, 3394640, 2083520783, 82689, 53678135, 5324992, 1077149696, 4157538352, 70451264, 1124335696, 3149580, 3291545604, 1936786492, 1073758211, 1880146688, 1009782540, 3158036, 806552332, 208682096, 822095984, 213913792, 3238855875, 856621072, 3611095056, 1144062723, 50336769, 1291865296, 348323840, 202364160, 1023623439, 117702851, 3271766083, 121390080, 352336988, 1074528284, 822083612, 3272343632, 1371538177, 68943888, 70266883, 800512, 269538372, 2097152117, 875561008, 50535623, 268518416, 1891683591, 67174400, 3224437808, 268681485, 12845312, 251707412, 806915, 1393313584, 79764557, 1145257996, 4244570368, 2031692, 1405092609, 3294366727, 3556770819},
|
||||
{3233824771, 1101852, 54530119, 4000796, 339674304, 2087728176, 1317900, 3221275404, 3221439244, 4026534912, 1879245249, 852416, 79757312, 205344787, 281807936, 4227876032, 1087393076, 1011663617, 4106420228, 3271557891, 3221292047, 50545408, 3440115828, 281222145, 4043326784, 30343171, 3506454528, 805502992, 3497083904, 272370688, 493933837, 827326723, 323585, 3221439244, 4259841, 855638020, 1399849991, 798976, 4026729713, 20131955, 67223632, 808454080, 201589189, 323964020, 1014186753, 83888113, 17236829, 3222323968, 3425697904, 1196474416, 331629317, 1090781184, 2000696321, 1037, 17569557, 1879310336, 50794496, 1899299905, 70321216, 1, 805309440, 3238215731, 3222323312, 1145323520, 1140850764, 1459892992, 50334976, 1507407, 13369539, 1409806337, 1090638912, 51646656, 808452371, 3274964996, 12612608, 4081906432, 3222323204, 50413632, 1090781296, 1074842625, 221253681, 4026795020, 12861441, 20978688, 806121665, 4029878721, 223346736, 872430684, 201527040, 4030991409, 873214001, 486604868, 1078150092, 3250598352, 822099027, 1074020357, 1074007052, 51122289, 3291562032, 3695640641},
|
||||
{1363270656, 1039207619, 4279500807, 4027322416, 3427795024, 808652925, 1346373069, 1087397056, 1092403264, 805307456, 1941966848, 3224373040, 809524288, 269499413, 1548488464, 50528316, 258052, 12649475, 16842769, 67113984, 4246532, 18808848, 1410383875, 1006633247, 3271557120, 3997952, 12848205, 3502256208, 214695948, 1023656964, 1325400068, 82841412, 272631553, 3222011984, 3293364227, 1275858176, 311603, 205996252, 53493761, 3222061888, 68720, 16827151, 4043375360, 996160, 806372419, 3225620437, 1074790595, 68253004, 3495690432, 1934360591, 202181632, 262336, 319554636, 1946157056, 1462767956, 1342488577, 803009, 7356417, 983116, 16855104, 70261777, 868625, 806374467, 1142149888, 72401920, 81932, 1074794499, 334547968, 818688192, 17826816, 4272901, 4197388, 793795, 3476048915, 806293552, 218104077, 87819100, 1075655680, 130053380, 12829700, 1073744912, 3224371456, 16974069, 3422552064, 1425020019, 1075069184, 201330500, 13636544, 32572421, 1073951537, 1128471603, 5357571, 1392787540, 50397516, 335545393, 1397493836, 1007882239, 1879065404, 4059050816, 1077937167},
|
||||
{471043, 3491503559, 3222011919, 1275150592, 1008468160, 251736444, 70271744, 809440208, 12648512, 4197376, 12660748, 806617136, 4195072, 1073742788, 205524756, 1073742017, 896614605, 62928128, 3162944, 799939, 1140900608, 201326597, 12651712, 3145728, 489747507, 4312064, 873231628, 3150019, 790784, 3932212, 822084612, 71569411, 265302016, 1081461965, 1279341824, 335593476, 205784321, 1886401729, 12590924, 3288338684, 1073742592, 3287305216, 204032, 205783047, 12848188, 805310224, 21233728, 1125388288, 278768, 809779279, 50642963, 87229452, 219414528, 71502848, 3225448460, 470548528, 67436800, 4026600640, 825296131, 17842177, 1075643395, 70255681, 809520464, 335544572, 199744, 62926908, 15728964, 20974855, 1946157940, 872480772, 1884110128, 4029940036, 389376, 825230145, 281072964, 805391424, 269500720, 341045, 202404928, 1124352064, 12582912, 50331841, 1125122048, 53675776, 264508428, 117490688, 29363455, 1929654272, 872416016, 218434575, 50529348, 83936269, 3341816259, 4196288, 1144782848, 1093665036, 3410992, 275987712, 470813892, 65565},
|
||||
{282006541, 4980800, 269484352, 499389700, 1342964675, 3490714640, 3226235696, 822280220, 3539992656, 1141900228, 1879061760, 117637181, 202329148, 1142685696, 4047703040, 323584, 204681984, 17846272, 1077985600, 1076900620, 50348032, 1942818624, 3163957, 1356022224, 1879835655, 321912848, 3238792252, 1090765104, 16777532, 201392896, 50384705, 810598400, 4463821, 3422571536, 1073745936, 3224383541, 50945, 1895830720, 3427746823, 1091337984, 81933, 1090531409, 265216, 50335744, 51458115, 3288608848, 3285975116, 269226000, 5508144, 1438662732, 15847492, 352519361, 3221488908, 293367808, 3292533788, 1094763857, 13370317, 17826572, 470839552, 1879310400, 53744835, 3439588804, 271649861, 1305481212, 63377425, 19504, 3222277123, 822874117, 786691, 268455232, 70255408, 117763, 120865092, 822083644, 1087385811, 202378432, 868425152, 1880031424, 805309441, 16528144, 1024490548, 1136656437, 768, 20303043, 29360320, 70304976, 1074790480, 4111, 7672064, 1882452241, 268747825, 79893491, 1097735, 469966653, 12582928, 3221225473, 386674688, 983100, 286541059, 477105472},
|
||||
{3222016000, 22297887, 1288699980, 1073754611, 289266880, 1077686605, 54267072, 69904, 288555079, 12633137, 321929228, 0, 51380417, 5491712, 1194802176, 471010576, 4231249932, 3238314240, 285421575, 806096135, 859837488, 205308164, 3489875920, 821828671, 51429575, 268894256, 808456259, 3694182652, 3423395613, 4126212912, 255603676, 3425754161, 3221307452, 1048880, 202117888, 810485568, 3271802972, 79720688, 117714959, 1077150704, 8126464, 5193840, 4304, 54575164, 1595146480, 254820656, 3132, 1879359505, 865292, 3162420, 817893313, 482413651, 825278720, 1077740288, 84934909, 67121172, 470814751, 1078987788, 73472, 3338685443, 3489677327, 3288338444, 3304311820, 50993, 1848339, 3241155587, 1879097588, 3228570627, 205603008, 1143996431, 262912, 71156481, 822940679, 4194305, 803008, 1008664640, 818098419, 3250897667, 1087434755, 855654401, 3241345244, 12599344, 71315468, 213911311, 3149057, 264521037, 67440385, 398541828, 266291, 1194344560, 469959428, 339968, 1078276096, 5009740, 4228645892, 230687745, 204476164, 1019272223, 805306620, 3291480064},
|
||||
{1543553040, 983232, 221564735, 3288334531, 1891697429, 268520707, 1141838913, 218116304, 281527564, 1556135936, 3216836, 3221291265, 1895829713, 826278656, 1077940316, 53527380, 1124134940, 91226880, 88080401, 3285188865, 52216129, 825229573, 51118084, 21057735, 1127298304, 3997952, 63714352, 16777408, 485556431, 1073742093, 1350303952, 805358789, 30212413, 1413599424, 216339, 335562572, 3540791375, 1073807363, 3505419267, 63160337, 3493066496, 1124167701, 246004, 272880704, 222311425, 205320205, 470073412, 1007420173, 3300938003, 67121605, 1879314176, 84358144, 4981044, 356528128, 1090732288, 3212288, 3540000513, 272486471, 3224391872, 268636431, 4228713823, 5120, 270484492, 1076936752, 204555219, 1124287556, 13584, 872436737, 12583196, 3272814595, 3225436176, 3440719620, 3289133056, 16974851, 520949788, 327680, 336904208, 196613, 818151629, 1128008752, 3422564400, 13370444, 1329347588, 249664, 298008848, 1086325200, 3489661004, 282086407, 79758272, 3288663043, 12910604, 2093813760, 202360000, 4194547, 5296129, 821821440, 520143889, 72552432, 3570402048, 222298387},
|
||||
{201601024, 4194753, 3338665987, 1343287361, 292634644, 487588032, 68176963, 202638348, 1349730304, 4027584525, 269485040, 12632563, 1079299075, 1343245783, 4440883, 7566128, 1090572288, 201356575, 16789504, 205647900, 1279459343, 4233954067, 1009781776, 822088705, 1342460160, 67177728, 1346633932, 3221298544, 29361220, 3292532803, 3234267148, 3221291024, 4123013452, 201338881, 1278214192, 331662080, 17472, 1095594288, 335885123, 204588300, 822871040, 3225468928, 1360332, 389287180, 201375748, 4259859, 817945920, 805318720, 1393295475, 1125318675, 1114112, 1074860803, 201326592, 262912, 3422617651, 3150848, 470027340, 3285204992, 72093759, 1884095488, 1942015747, 823918660, 817905411, 20201472, 55636291, 21037276, 202179328, 201591809, 268438540, 68609, 50331952, 3948624, 4089446592, 204566976, 74514691, 813436016, 67899584, 17155904, 3289137408, 15745024, 3342387, 66496, 4043518047, 1275134976, 4147, 1292714032, 1090587697, 3345520, 14090547, 7184, 3422552832, 1879294016, 53740544, 2009083904, 30146620, 3241227012, 1048836, 1329613839, 205259532, 67174412},
|
||||
{16777408, 133224268, 8196864, 16974084, 218124549, 3221312515, 67128588, 1158625025, 4231070016, 13566256, 7369472, 1339504, 1074528257, 16777999, 319818768, 80543984, 205718353, 1048640, 272629952, 1426063676, 3586129984, 1278230528, 82907136, 3285188663, 889999111, 54737985, 3502722304, 3308257395, 53477383, 272630528, 1879109637, 71237639, 1396441088, 71319632, 3451962117, 63763200, 15619, 71761937, 268501780, 4039376961, 272633153, 1929395217, 1125142272, 3147084, 873464576, 50595151, 121683991, 3221495040, 3221241936, 213911319, 53477427, 214171660, 67372288, 1074794576, 3305311489, 22032631, 208, 20971644, 266240, 197828, 1140850736, 16808964, 4251404, 4240453680, 3222077452, 80150528, 1395654925, 1073742320, 805355521, 50393540, 281105408, 335627057, 12600320, 1074004417, 1543507980, 51119156, 3510661568, 262148, 1090531664, 3245343040, 4027331060, 96731980, 7392256, 1191445571, 1328128, 3145780, 1090582272, 51384515, 3229352052, 19927040, 204558339, 51318784, 13578240, 808910848, 67158080, 67112261, 3224389056, 256, 67916092, 808784128},
|
||||
{487407696, 5362736, 786433, 12603392, 1879162883, 1879049520, 3241197632, 272632832, 1024, 805318676, 805573388, 3224388624, 3221225715, 1153457152, 3222274097, 806356800, 23620, 390124496, 786435, 281030705, 1068240, 273481740, 826280976, 13380, 1837041, 13046033, 1141637388, 1024246028, 1127285505, 120783056, 886051852, 84148288, 7798992, 3242262588, 520093697, 818926832, 3238513905, 1275080769, 31226896, 332, 1966146323, 1141324801, 1142932740, 3275755584, 3226321681, 885049088, 268950592, 1343226055, 1087190068, 1006683185, 201326784, 1051664, 17911811, 1835845, 3221241024, 805622768, 249856, 1346375728, 96747584, 269221911, 335544339, 1297600, 1400012, 1141112835, 269680640, 806145219, 1157627908, 50595073, 806289408, 29376565, 261, 3242668815, 1287864576, 88087604, 20224, 70595377, 1275381056, 262148, 3234626560, 3493855232, 201329671, 3195216, 324014080, 3225420816, 67174896, 72090640, 1142015024, 275862272, 4047852019, 268447744, 268637504, 50846725, 4030788800, 1127232513, 808649476, 327680, 1293103884, 66126148, 1395932252, 67387392},
|
||||
{1090535536, 117506048, 809517301, 1086324817, 3540193292, 3250585813, 50720768, 322126851, 281067521, 3225617156, 3245634624, 1148256304, 83981379, 273682455, 268813571, 4039954432, 3272605696, 12845827, 3338977347, 268449025, 20481, 1839952, 53756096, 18022416, 3288350723, 1275347980, 12582993, 3502511296, 1128280320, 817889281, 3423404033, 819725056, 1141637133, 54857792, 4276300, 1245197, 4109, 1342981205, 79740928, 4260164, 67112704, 3308258064, 4048569601, 268451843, 253542855, 15809539, 855905472, 1245377, 201654279, 335609875, 469811972, 3225682180, 202178575, 339543043, 67111936, 63123648, 202654772, 4263936, 822870021, 999500, 50363596, 3493855427, 3221226500, 30408716, 4669440, 1073743053, 3221225475, 3539995648, 508096, 339002304, 272686080, 204485687, 67109315, 520093908, 1275071548, 822135872, 3242463296, 474808636, 206504717, 4056941904, 3489924096, 4034673712, 50410444, 0, 318783491, 805306380, 3557047300, 3221689392, 3944561, 2109787924, 50622467, 7536899, 21053745, 67371072, 79692100, 889979904, 5259345, 469783423, 1073745107, 3224375056},
|
||||
{17240128, 1124077555, 53751873, 3489988676, 3149568, 83939524, 4115858455, 4313344, 205521152, 4218049, 856686652, 1039, 3237740548, 13042435, 800560, 262336, 1125127169, 385937468, 924005392, 288387121, 13104, 318832835, 268697603, 50332608, 17906801, 3288405004, 5250820, 201392576, 806356291, 332217628, 1140920384, 1342967557, 84082903, 319029251, 1081328387, 17039664, 1345335568, 1141047500, 3949827, 12583792, 1057754160, 987376, 89066560, 17236739, 16826384, 297816000, 1136685264, 1125176287, 475396, 68104960, 3165248, 50659331, 53677248, 3476043004, 1010827520, 3239850061, 1292091460, 3234005779, 771, 79691776, 77827, 3222470656, 3275949377, 262156, 3293315140, 855703568, 272683340, 69142272, 3221225664, 49152, 1125187584, 51171343, 3271576589, 3238264880, 805306624, 1128267779, 1052673, 5030717, 1459617793, 268632080, 1195377857, 71241988, 282079232, 1090523332, 252711680, 16973824, 13383153, 319815744, 822132800, 5103364, 3422830608, 300941361, 1154434052, 8183552, 928776964, 12590851, 67125248, 84134960, 3145731, 805622017},
|
||||
{4096, 217321472, 65536, 1887260739, 1073742644, 268447760, 4026532033, 1307642935, 3225472003, 3343111, 117452864, 322224320, 1125183519, 3246190644, 3339842611, 281021441, 12698611, 1049596, 208875607, 4227936705, 1073807408, 202377008, 16789504, 4029728513, 1323009, 3506749639, 1010057233, 1006698544, 285212672, 1161838400, 3424403717, 1006683200, 818741317, 273428852, 67371777, 1073796160, 218152961, 16777216, 855706881, 1124351425, 3221426204, 823132164, 3221241856, 20987908, 4026797312, 29373440, 251674928, 1073950721, 3948561, 70585348, 5042191, 14430284, 389038896, 1073741840, 204800369, 1074002944, 65853, 805306673, 281804800, 1052465, 809615411, 53593860, 1074003968, 268488128, 204473665, 1074528455, 7372, 268906508, 805306700, 1074548940, 787456, 50642995, 70303809, 268911888, 50380848, 3302773760, 1891893249, 70320435, 1312524, 16004160, 3342352, 201327708, 12785424, 885785676, 297803520, 68624, 17879056, 17629440, 806142917, 204484612, 3234874115, 262144, 3442543616, 51576836, 268718556, 71057681, 51167292, 822870016, 1009844417, 219954176},
|
||||
{4030795843, 4089708592, 67108928, 285479232, 1350320132, 3233894611, 205308224, 3238002741, 269221903, 1075068368, 811348164, 3573744433, 4246720, 470221252, 3422762305, 216064, 1153446861, 230900592, 12583360, 5509452, 4272192, 219153200, 95041, 67159059, 1140933056, 4232106177, 1547698956, 214712589, 201589765, 1073795072, 12660737, 15781120, 1544811527, 126976, 202125584, 13381644, 205849536, 1158680576, 984076, 84751123, 53674481, 335557376, 1473053455, 16783104, 318852096, 264241216, 201327425, 4082106396, 4040098099, 1091616796, 475005696, 805424176, 272396481, 117702912, 67109684, 485539852, 3221345283, 269253825, 1891958784, 3221241857, 225343, 64225588, 320013363, 1073771267, 1019217361, 3221230341, 807337987, 3422751748, 822095948, 218104624, 70545408, 71380992, 873676124, 17828931, 4308992, 4198413, 332611841, 1278218460, 16564224, 67108876, 490802176, 1544293644, 3272360252, 268448204, 1288454220, 1347223564, 1543753024, 805306372, 3354688, 335872013, 49200, 1154793536, 1103888832, 201592065, 1950144, 13448513, 3224695045, 3222339597, 5029900, 1076889344},
|
||||
{51124208, 3422622721, 818151472, 4027596801, 4231004940, 923808003, 20983872, 809764099, 203210833, 294000, 284179468, 1143996481, 3227275264, 20725828, 2080392004, 3984644, 63193088, 279760, 1879049216, 318829760, 1288443328, 1291866116, 4076867652, 67322928, 13360, 1287737280, 1279328284, 17563648, 118436624, 29831168, 279612, 4210688, 3238003456, 1090570012, 55328847, 1076888576, 1195143169, 202134291, 3194880, 272630832, 1076982595, 268501052, 17046848, 826307597, 1078722624, 30622469, 221528117, 857673584, 3271629828, 1275072572, 196656, 469974021, 1933587201, 2110210112, 249868, 1276329984, 3422581552, 1929392128, 77824, 348159232, 13313, 3158044, 327700, 810287171, 1075773508, 807190724, 204501004, 84365121, 1140851011, 812707840, 805384257, 262209, 1050369, 335544351, 19930909, 822163201, 3231757, 254804176, 69140480, 265217, 50397184, 16781312, 1896886465, 1086586881, 1006701571, 483772160, 5297089, 3153873, 1078988820, 324027408, 3506438196, 218370304, 80596225, 872418385, 3435953155, 271929456, 805323776, 1141325884, 1137557812, 856112912},
|
||||
{67108893, 318796096, 17581120, 201327360, 768, 16777232, 1006645248, 78596, 79910668, 1930458883, 5439548, 50398464, 4093891575, 844, 130285873, 51386160, 7344193, 54270983, 3225633804, 201651252, 17039616, 271584287, 3342939136, 74648833, 4107300931, 223351568, 285261875, 1160777015, 7340288, 1138704499, 28992, 3222089728, 7407605, 805502976, 1342181393, 201641008, 3225422848, 61555, 268697605, 66846720, 204538112, 285232240, 1325413127, 70468672, 1191185651, 1012121603, 201375795, 3225420828, 4195072, 1073938524, 348127237, 70533184, 3224374544, 12300, 1073820912, 3423666432, 3222475525, 3288536065, 87313475, 202375488, 202163200, 1074053375, 54526012, 1275346944, 29409536, 327, 3653663, 3422602176, 3952384, 54723407, 268697619, 268530435, 817955588, 19661, 17039428, 1124073520, 809500945, 1069863376, 19984385, 1073942544, 1086600192, 51130368, 5439821, 855900172, 88145935, 3423010899, 3169297, 251867441, 3354475971, 3235643440, 12584000, 823246864, 251674676, 205540372, 251658560, 3507615500, 272369148, 817889283, 3084, 365104320},
|
||||
{1346437905, 17043459, 357613568, 336810032, 218186048, 251726864, 482348063, 51118080, 4197424, 471089348, 3287347204, 3238023180, 68109057, 51118095, 55361843, 1886404624, 1051648, 4993072, 1035267, 1564479571, 3289387008, 15795264, 268496944, 201392403, 3224699924, 3221508096, 70254867, 5178112, 230690061, 16793616, 70321393, 29388864, 1163657216, 1543618572, 13375233, 1342192656, 251658496, 3488616432, 17059964, 68358417, 4272391, 1307951888, 806551775, 825233409, 17825856, 1307774004, 1413268303, 264290304, 286523440, 77841, 4097904652, 1409495103, 281334020, 50659388, 872694076, 3237068993, 219090769, 3272016896, 499128112, 268746764, 18165840, 3145728, 3272671244, 20037893, 222417181, 3241671680, 1933623296, 50444, 1543701248, 1344225619, 214106384, 83935500, 3221228887, 3318595824, 822395916, 3489680589, 1879307600, 3426832196, 1124193075, 1074991107, 1342194704, 1010828289, 1346374685, 1356805136, 3288335120, 50381836, 4261185, 3241936661, 4027892752, 327680, 201377072, 50331660, 91226480, 1882259456, 218968256, 262451, 20432, 51576900, 4, 834732036},
|
||||
{872418309, 3221275076, 3439603719, 352339153, 269553948, 4403212, 1278278660, 3272540352, 473977860, 85721200, 1887263, 3477931389, 16777557, 67112704, 818938324, 341053185, 4457479, 470024204, 821364556, 474021968, 1884045568, 12336, 1964039168, 922763520, 319836431, 196608, 1011055888, 1075249216, 1087376471, 3261248, 79889152, 3540041924, 79953984, 3556835329, 1949500164, 3340550163, 268439808, 70452468, 53544396, 1325662208, 3271557936, 4312276, 271600897, 1252401, 1250560, 3625021, 1145111620, 201327616, 927150087, 204783616, 62914640, 1073745088, 335741964, 1287716892, 1342242896, 285213456, 67317760, 268502020, 1342242864, 2097205015, 1087639552, 285410512, 67109893, 52166679, 66863172, 122753024, 202227932, 83890252, 1849287, 12590132, 3540013824, 2084323351, 489688140, 16464, 12923200, 201441280, 1074024460, 336397312, 219530261, 1073938437, 3221227331, 1077882880, 1556874513, 82837516, 71315661, 352333840, 67371776, 273416192, 1124074288, 1074839600, 1142800, 806354956, 1069936, 213975312, 859114544, 806552576, 68162627, 1006633984, 3557113860, 1026568208},
|
||||
{806302961, 4653084, 272957504, 204829532, 1278283005, 2101555200, 21169984, 269701205, 1950351555, 1086653712, 995345, 71355392, 3221274944, 3222274051, 1090568193, 1086324752, 13442048, 1346587908, 4194563, 817905732, 805507088, 339835908, 206570496, 281084364, 254804737, 1153767216, 12586012, 323026124, 201327411, 3221242132, 67112192, 470078224, 72090637, 19923201, 71315760, 63246349, 213909855, 1204778243, 1074843440, 117453572, 85000304, 1074077516, 872512524, 3, 1895828480, 1074791429, 285228097, 3237219328, 272449600, 263436, 2084897601, 1409352452, 305, 94208, 2130755825, 2087736583, 808786944, 799559, 201392896, 1106297856, 12586188, 328704, 319555008, 3422552369, 1358217520, 805653760, 16777219, 255095861, 1163331, 55325495, 3291676948, 7355663, 1078019191, 13044860, 118540, 1073856527, 3284926464, 324010764, 1087112128, 13374467, 335492180, 4277004, 4032283856, 1074855936, 473890819, 3289383104, 1073758208, 1089485828, 7405568, 3224440624, 320027840, 13631500, 16250065, 4099, 1275330816, 1103429649, 469958912, 1326186741, 810303492, 251726852},
|
||||
{356515843, 1036055300, 1074528269, 21565, 16, 876610560, 1198530304, 1073988561, 63114432, 3489730563, 1124073492, 117771265, 88867664, 268644416, 87294991, 889209029, 17838160, 1343275968, 3442475268, 206848221, 1076889409, 3241656528, 352781056, 67161140, 83901940, 1006896128, 225652816, 50334804, 5047100, 17040140, 4077915904, 3428782908, 1544384576, 246065, 192, 1006829937, 12801101, 1090547716, 470830080, 12632065, 50343936, 12660995, 67372048, 3239265024, 923081728, 3271611460, 1392512076, 3304112452, 54016, 3271558145, 16793792, 12357, 1409286196, 12336, 773, 4143976956, 816625, 201327884, 487588656, 3238002705, 4027580656, 205537472, 97517568, 3236954997, 79908864, 3241163855, 1039994944, 300953617, 5891, 822919408, 4278194180, 0, 20971712, 1519628, 1836295, 268464144, 19988928, 333185296, 889470977, 269234236, 1009844300, 214188224, 82176, 205262272, 289407040, 1087422912, 1113136, 96929540, 4206848, 1460409200, 1091587132, 3225419847, 894418960, 4039163904, 1008472336, 3289171728, 68157504, 2130971664, 1275082001, 817954099},
|
||||
{268698565, 809834244, 1077936896, 13700400, 3239837892, 3221228567, 1087386380, 4039426832, 4241240432, 80543748, 3226221808, 1278235649, 286528768, 805384204, 486998031, 5376, 805503043, 66499, 808464405, 70306880, 67358483, 1136677068, 902630403, 3241215168, 64225596, 0, 3224440835, 339805232, 4352, 806552000, 1028063488, 1547698432, 805765120, 3233813552, 324, 285225732, 202637316, 1561591824, 335794960, 80740352, 50659376, 3275050060, 1087373312, 1103151171, 3289169968, 1141324801, 3509846016, 16781312, 3502848, 3271557444, 3223269571, 1343505492, 786480, 1157890099, 4521984, 204488131, 1060868, 3272654864, 805770096, 1113092, 201442380, 1095839792, 3295739972, 67899405, 281018624, 3271755520, 1559234368, 3234017600, 3222389004, 4980852, 201523281, 806568135, 474006343, 1072968179, 1947206448, 68157888, 20993473, 252446012, 202378304, 331419696, 3222278160, 3407900, 1086353856, 3238007857, 1079034128, 3493122067, 16789504, 84095956, 83037441, 1354772480, 808456197, 71368017, 252904516, 1146030016, 4029744368, 3145744, 855849984, 1077346304, 1077673988, 806175491}
|
||||
};
|
||||
|
||||
static const int W2[21][30] = {
|
||||
{520192, 1142739764, 79713284, 4249408, 3541355532, 62980160, 30691283, 1074806977, 15937728, 1929381312, 1884143644, 1027611765, 3271783183, 3691004737, 1154483409, 1145065216, 1884159261, 3427877888, 1077244755, 806636596, 3489723392, 271582039, 71109633, 1081868560, 1087386485, 3243504839, 823997644, 1544308528, 1279024179, 335807500},
|
||||
{1342207007, 29820116, 1103434032, 1883468996, 3489875904, 3148819, 286528511, 3224386560, 1153696531, 4059828492, 524241991, 4028369984, 872624897, 3272618224, 1140850975, 2080656496, 3472896112, 872633105, 1892729932, 13750288, 3225439236, 858862656, 1896971504, 1356056387, 69703, 487650048, 5193840, 24906800, 3506506956, 1880118321},
|
||||
{822947852, 1421892883, 817889587, 3502506804, 1307838275, 52375580, 202181888, 805323828, 222233600, 1879097584, 3271841549, 3339015004, 4232058161, 292602624, 922760527, 3612817157, 806096960, 1882996851, 825230099, 125095164, 3224386832, 263443, 1942027328, 214762509, 16973840, 472920261, 53248, 1326451728, 808780748, 55628865},
|
||||
{1929446656, 3224880445, 3495743600, 322961501, 201381841, 3235236864, 805662976, 809504000, 50331841, 290701439, 202162227, 1343422535, 3503296717, 1036780608, 5247172, 2101112839, 4199420, 4113566916, 233833731, 1091530829, 50338819, 268438540, 286051584, 1912537536, 856439875, 3288599795, 3221275084, 827331063, 3222227969, 1146929264},
|
||||
{197703, 1935422208, 1131675840, 54644036, 889214723, 1192182833, 1145253888, 4043312451, 532956167, 1895887616, 1078778887, 806109461, 817901628, 1148194132, 50245, 4029677837, 3221537539, 1129068499, 1355815936, 79691856, 861077840, 2131521543, 3288452160, 473186304, 787472, 1195376700, 3221243727, 1105002524, 1140899869, 328128},
|
||||
{270128, 2009924893, 1203965983, 72817667, 5096461, 3932356, 67109315, 3346871568, 812647363, 3289323505, 4030005709, 3742433491, 3558015168, 809549879, 265551935, 3493807412, 469826564, 873584387, 819147584, 823968049, 1077941488, 231541764, 13698509, 472956928, 72159300, 348127325, 1891632064, 268776212, 1880473664, 3338731824},
|
||||
{1279267856, 4044640448, 806359344, 1606632448, 808518080, 268704976, 276758551, 1363488847, 16781181, 1024660676, 21460160, 1086397504, 359661760, 214024461, 869336068, 54801164, 3234083917, 4026646579, 1325625396, 348176, 3540049091, 1431310128, 4043386940, 3225632836, 29474829, 69026609, 2138247172, 55316673, 3274985487, 16719701},
|
||||
{3436971788, 1894872340, 205287692, 54576140, 97320976, 2097426460, 4395824, 3457073, 2081165333, 50461764, 3295939776, 806568143, 274444, 4040186895, 50531776, 3222035761, 365104384, 318983171, 297824259, 1946226800, 80679025, 536081421, 19943632, 1155514416, 1362119763, 18153472, 218366932, 1012048, 3292273727, 808649679},
|
||||
{213909708, 3225474053, 22835980, 1275855872, 117899468, 1280523264, 20381953, 1422917917, 4077128709, 122024052, 5259585, 292815872, 822374608, 51327168, 268685361, 5517324, 1074725184, 821056272, 114700, 269497359, 68209680, 1124349424, 1307594096, 927223105, 1879556097, 805647348, 251707393, 53478604, 1127432400, 472912640},
|
||||
{213958724, 806160, 3305910273, 1951613151, 806154247, 862985676, 1879835392, 352784399, 55628033, 351732496, 3226517853, 3423468609, 118256647, 822096129, 1087436037, 256931075, 3271685396, 268437248, 390271172, 1547727104, 222302224, 482660352, 3221483968, 1606431765, 808452180, 54541616, 3435971389, 805306384, 218173891, 206624071},
|
||||
{3440431939, 51393856, 88898589, 201339120, 3305964357, 22107073, 288363793, 3284980481, 4080058416, 3572501956, 1343309580, 1280523277, 3494065139, 1411199171, 80741329, 1425015088, 451, 1104965907, 3343844119, 4506643, 1194575637, 3242513156, 1075170544, 855915889, 876428737, 3489975575, 4243701, 85741360, 3233813265, 818156805},
|
||||
{338755844, 826359821, 826742023, 29836480, 130089788, 18104769, 972, 80481283, 3235378176, 299320256, 807104, 3305197373, 1023230020, 57990159, 1173357888, 1879511040, 1069563216, 3242216768, 1006845388, 118479891, 5272324, 1052725, 1091514615, 271696132, 3229369295, 1959020400, 1569845, 214252549, 5242880, 1346387971},
|
||||
{13700288, 3288596848, 201326864, 202622721, 1879360528, 1011642460, 3225224260, 3234005296, 1087468016, 3239967744, 17843023, 332752, 78659, 204476684, 3707781056, 297816145, 290964480, 285291719, 491980033, 1342242864, 289484800, 1089533715, 500961567, 1077151041, 3426795805, 3490464247, 1056967901, 285412352, 1079182365, 4046672652},
|
||||
{527725328, 351277429, 125112321, 63111172, 873270273, 352781313, 334509827, 285416464, 4039117901, 53477379, 3570159836, 274190684, 285425409, 809833232, 202577740, 271630405, 470817795, 3339455500, 219152844, 273707015, 1074531536, 1125125139, 3289448467, 809244612, 821297175, 202117120, 74514709, 806375189, 3221303364, 123142481},
|
||||
{3271784193, 266144768, 3237744388, 3272934404, 3222211644, 1092384588, 4093718540, 4026601724, 290458673, 254805824, 72151133, 877412668, 3310419968, 1158878228, 3489665009, 1053808, 358568156, 3589297412, 1312528, 273089996, 1341440817, 122441985, 1138493191, 1106259972, 1880884032, 806177872, 3221701633, 209186845, 201392337, 84676608},
|
||||
{1607236852, 84090676, 335757361, 3277640451, 29707568, 1086344384, 4228190215, 806305796, 3541094269, 208784503, 1127482181, 364957445, 274736, 51384532, 130236428, 4034330624, 1276198960, 3477865411, 1360845, 1883308237, 51384688, 823132492, 206631695, 824116227, 855969100, 3236959488, 4042321932, 805327620, 3309588673, 1345527024},
|
||||
{131134223, 222561024, 201637891, 1161572400, 3447702596, 1091633968, 202375228, 803852, 1295004700, 298124355, 1021168653, 3320844295, 3440117725, 3570402064, 68010240, 1276955845, 319553747, 3291484160, 3557622800, 890242304, 463872, 3272864524, 267399173, 1023496272, 280348, 67567616, 1010089984, 1548811345, 13648908, 351649808},
|
||||
{251854896, 281018444, 1967918196, 264572172, 827311052, 15729904, 1295012161, 16842205, 491061447, 4198672, 521651456, 130810353, 222130180, 3507290437, 83690255, 131384261, 1142096204, 818090188, 3502260500, 289673488, 1950597187, 3753983239, 810568716, 268684671, 1086374111, 889245459, 927793200, 1191382209, 3225177921, 855656244},
|
||||
{284968277, 868709315, 812995856, 3544384575, 4089446748, 3241607472, 74694672, 3493941005, 819184692, 834670653, 4245277, 68943891, 273680369, 217104384, 2110550044, 1287671104, 79746260, 67306243, 89394189, 365900117, 855966668, 1194341124, 2084573268, 3304281204, 4231348276, 3225473055, 856428544, 323273987, 56418053, 255267852},
|
||||
{1138491456, 3426947020, 215035980, 4076929793, 67171076, 3237937927, 1930743236, 54533376, 4039906572, 892850372, 1007698128, 54526771, 1009865500, 1064569856, 3238838288, 1140851517, 3235071181, 88933139, 1346572124, 817974277, 2094035024, 3300967628, 4101209868, 63029324, 1010848831, 24330240, 17564687, 1076918021, 3506450929, 3937072},
|
||||
{1411238912, 273692432, 282526156, 1357918464, 1074841361, 253691188, 117525571, 1074089987, 54332, 3430159615, 1547698445, 1080528, 3453869056, 1061215356, 3223142593, 805359615, 1287652109, 12861488, 857543152, 253690640, 499388659, 51433759, 3340759377, 1095028703, 218169715, 3221228609, 4210695, 4033988060, 3540189516, 16978129}
|
||||
};
|
||||
|
||||
static const int W3[3][21] = {
|
||||
{3318558772, 3234269123, 17241872, 1359204400, 2098230615, 471125767, 821096517, 281399636, 1145060400, 1078325332, 311299, 1086784256, 3473096716, 3490712848, 214237248, 3222290691, 3224392531, 1074073392, 348992307, 1074856384, 1006849116},
|
||||
{874499347, 818729935, 4026610700, 51510512, 1427619904, 3167285, 3492809932, 52174640, 206508115, 1299382480, 299359284, 3489723155, 1354764052, 1081414404, 52383556, 4110627100, 251854860, 1057026048, 118298065, 3510387537, 338971661},
|
||||
{268435456, 3149840, 3221286992, 281018560, 1086353472, 48, 1343225872, 3166448, 7352320, 4210704, 272646192, 13680656, 3195088, 4026544128, 818937904, 3222290624, 1076916272, 817950912, 16624, 284180480, 281067584}
|
||||
};
|
||||
|
||||
static const int B1[2] = {
|
||||
16711935, 4278190080
|
||||
};
|
||||
|
||||
static const int B2[4] = {
|
||||
16843008, 255, 65281, 1
|
||||
};
|
||||
|
||||
static const int B3[30] = {
|
||||
4294902017, 16777216, 16777473, 65281, 4278190080, 16711935, 16711169, 16777473, 65791, 4278256127, 4278125055, 16711937, 4278255872, 257, 65281, 16711680, 16777727, 4294967041, 16777474, 4278255616, 16843009, 4294967040, 65791, 33554178, 65793, 33489153, 16842753, 4278256127, 4278255617, 130816
|
||||
};
|
||||
|
||||
static const int B4[21] = {
|
||||
33752062, 3, 50397700, 67044349, 16712701, 4294902269, 4244440319, 67240962, 4261216765, 33620736, 33816829, 16973567, 4228054526, 50529023, 33357310, 4244635902, 4244570883, 4244832004, 4244374015, 33881853, 16777727
|
||||
};
|
||||
|
||||
static const int B5[3] = {
|
||||
150668551, 4177855749, 4261871616
|
||||
};
|
||||
|
||||
|
||||
#endif /* CNN_WEIGHTS_H */
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef IBEX_CNN_PARAMS_H
|
||||
#define IBEX_CNN_PARAMS_H
|
||||
|
||||
#define MV1 1616928864
|
||||
#define MV2 1600085855
|
||||
#define MV3 1381126738
|
||||
#define MV4 1499027801
|
||||
#define MV5 1094795585
|
||||
|
||||
#define SV1 1217471041
|
||||
#define SV2 1217471041
|
||||
#define SV3 1217471041
|
||||
#define SV4 1217471041
|
||||
#define SV5 1217471041
|
||||
|
||||
static const int SB1[2] = {
|
||||
3, 3
|
||||
};
|
||||
|
||||
static const int SB2[4] = {
|
||||
3, 3, 3, 3
|
||||
};
|
||||
|
||||
static const int SB3[30] = {
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
|
||||
};
|
||||
|
||||
static const int SB4[21] = {
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
|
||||
};
|
||||
|
||||
static const int SB5[3] = {
|
||||
3, 3, 3
|
||||
};
|
||||
|
||||
#endif /* IBEX_CNN_PARAMS_H */
|
||||
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
#include "simple_system_common.h"
|
||||
#include "cnn_weights.h"
|
||||
#include "fully_connected_opt.h"
|
||||
#include "ibex_cnn_params.h"
|
||||
#include "ibex_inputs.h"
|
||||
#include "conv2d_opt.h"
|
||||
|
||||
#define IMG_SZ 28
|
||||
#define NUM_FIL0 1
|
||||
|
||||
#define FILTER1 5
|
||||
#define FILTER2 5
|
||||
|
||||
#define NUM_FIL1 2
|
||||
#define NUM_FIL2 4
|
||||
|
||||
#define STRIDE1 1
|
||||
#define STRIDE2 1
|
||||
|
||||
#define PAD_TB1 2
|
||||
#define PAD_LR1 2
|
||||
|
||||
#define PAD_TB2 0
|
||||
#define PAD_LR2 0
|
||||
|
||||
#define POOL_STRIDE1 2
|
||||
#define POOL_SIZE1 2
|
||||
|
||||
#define POOL_STRIDE2 2
|
||||
#define POOL_SIZE2 2
|
||||
|
||||
#define DENSE_DIM1 30
|
||||
#define DENSE_DIM2 21
|
||||
#define OUT_DIM 3
|
||||
|
||||
#define SAMPLES 1
|
||||
int outs[SAMPLES][OUT_DIM];
|
||||
|
||||
void lenet5_mnist() {
|
||||
|
||||
int dout1 = NUM_FIL1;
|
||||
int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1;
|
||||
int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1;
|
||||
|
||||
int dout2 = dout1;
|
||||
int hout2 = hout1/POOL_STRIDE1;
|
||||
int wout2 = wout1/POOL_STRIDE1;
|
||||
|
||||
int dout3 = NUM_FIL2;
|
||||
int hout3 = ((hout2 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1;
|
||||
int wout3 = ((wout2 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1;
|
||||
|
||||
int dout4 = dout3;
|
||||
int hout4 = hout3/POOL_STRIDE2;
|
||||
int wout4 = wout3/POOL_STRIDE2;
|
||||
|
||||
int flatten_dim = dout4 * hout4 * wout4;
|
||||
|
||||
int in[IMG_SZ][IMG_SZ][NUM_FIL0];
|
||||
int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0};
|
||||
|
||||
int out1[hout1][wout1][dout1];
|
||||
int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1};
|
||||
int outp_dim1[3] = {hout1, wout1, dout1};
|
||||
int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0};
|
||||
|
||||
int out2[hout2][wout2][dout2];
|
||||
int outp_dim2[3] = {hout2, wout2, dout2};
|
||||
|
||||
int out3[hout3][wout3][dout3];
|
||||
int pad_3[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2};
|
||||
int outp_dim3[3] = {hout3, wout3, dout3};
|
||||
int f_dim3[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1};
|
||||
|
||||
int out4[hout4][wout4][dout4];
|
||||
int outp_dim4[3] = {hout4, wout4, dout4};
|
||||
|
||||
int out5[flatten_dim];
|
||||
int out6[DENSE_DIM1];
|
||||
int out7[DENSE_DIM2];
|
||||
|
||||
int out[OUT_DIM];
|
||||
|
||||
for (int iter = 0; iter < SAMPLES; iter++){
|
||||
|
||||
for(int i = 0; i < IMG_SZ; i++){
|
||||
for(int j = 0; j < IMG_SZ; j++){
|
||||
for(int k = 0; k < NUM_FIL0; k++){
|
||||
in[i][j][k] = input[i][j][k][iter];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pcount_enable(1);
|
||||
|
||||
conv2_2bits_1ch(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1);
|
||||
avgpool2_compressed(outp_dim1, outp_dim2, out1, out2, POOL_SIZE1, POOL_STRIDE1);
|
||||
|
||||
conv2_2bits(outp_dim2, f_dim3, outp_dim3, out2, F2, B2, out3, STRIDE2, pad_3, SB2, MV2, SV2);
|
||||
avgpool2_compressed(outp_dim3, outp_dim4, out3, out4, POOL_SIZE2, POOL_STRIDE2);
|
||||
|
||||
flatten(outp_dim4, out4, out5);
|
||||
|
||||
mlp_layer_2bits(out5, out6, flatten_dim, DENSE_DIM1, W1, B3, SB3, MV3, SV3);
|
||||
|
||||
mlp_layer_2bits(out6, out7, DENSE_DIM1, DENSE_DIM2, W2, B4, SB4, MV4, SV4);
|
||||
|
||||
mlp_layer_2bits(out7, out, DENSE_DIM2, OUT_DIM, W3, B5, SB5, MV5, SV5);
|
||||
puts("Output Layer Values:\n");
|
||||
for(int i = 0; i < OUT_DIM; i++) {
|
||||
puthex((out[i] & 0xFF000000) >> 24);
|
||||
puts(" ");
|
||||
puthex((out[i] & 0xFF0000) >> 16);
|
||||
puts(" ");
|
||||
puthex((out[i] & 0xFF00) >> 8);
|
||||
puts(" ");
|
||||
puthex(out[i] & 0xFF);
|
||||
puts("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
|
||||
pcount_enable(0);
|
||||
|
||||
lenet5_mnist();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
lenet5_mnist.o: lenet5_mnist.c \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/simple_system_common.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/simple_system_regs.h \
|
||||
cnn_weights.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/fully_connected_opt.h \
|
||||
ibex_cnn_params.h ibex_inputs.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/conv2d_opt.h
|
||||
BIN
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
# Copyright lowRISC contributors.
|
||||
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Generate a baremetal application
|
||||
|
||||
# Name of the program $(PROGRAM).c will be added as a source file
|
||||
|
||||
PROGRAM = lenet5_mnist
|
||||
PROGRAM_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
# Any extra source files to include in the build. Use the upper case .S
|
||||
# extension for assembly files
|
||||
EXTRA_SRCS :=
|
||||
|
||||
include ${PROGRAM_DIR}/../../common/common.mk
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,22 @@
|
||||
#ifndef IBEX_CNN_PARAMS_H
|
||||
#define IBEX_CNN_PARAMS_H
|
||||
|
||||
#define MV1 96
|
||||
#define MV2 95
|
||||
#define MV3 82
|
||||
#define MV4 89
|
||||
#define MV5 65
|
||||
|
||||
#define SV1 9
|
||||
#define SV2 9
|
||||
#define SV3 9
|
||||
#define SV4 9
|
||||
#define SV5 9
|
||||
|
||||
#define SB1 0
|
||||
#define SB2 0
|
||||
#define SB3 0
|
||||
#define SB4 0
|
||||
#define SB5 0
|
||||
|
||||
#endif /* IBEX_CNN_PARAMS_H */
|
||||
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
@@ -0,0 +1,126 @@
|
||||
#include "simple_system_common.h"
|
||||
#include "cnn_weights.h"
|
||||
#include "fully_connected.h"
|
||||
#include "ibex_cnn_params.h"
|
||||
#include "ibex_inputs.h"
|
||||
#include "conv2d.h"
|
||||
|
||||
#define IMG_SZ 28
|
||||
#define NUM_FIL0 1
|
||||
|
||||
#define FILTER1 5
|
||||
#define FILTER2 5
|
||||
|
||||
#define NUM_FIL1 6
|
||||
#define NUM_FIL2 16
|
||||
|
||||
#define STRIDE1 1
|
||||
#define STRIDE2 1
|
||||
|
||||
#define PAD_TB1 2
|
||||
#define PAD_LR1 2
|
||||
|
||||
#define PAD_TB2 0
|
||||
#define PAD_LR2 0
|
||||
|
||||
#define POOL_STRIDE1 2
|
||||
#define POOL_SIZE1 2
|
||||
|
||||
#define POOL_STRIDE2 2
|
||||
#define POOL_SIZE2 2
|
||||
|
||||
#define DENSE_DIM1 120
|
||||
#define DENSE_DIM2 84
|
||||
#define OUT_DIM 10
|
||||
|
||||
#define SAMPLES 1
|
||||
int outs[SAMPLES][OUT_DIM];
|
||||
|
||||
void lenet5_mnist() {
|
||||
|
||||
int dout1 = NUM_FIL1;
|
||||
int hout1 = ((IMG_SZ - FILTER1 + 2 * PAD_TB1)/STRIDE1) + 1;
|
||||
int wout1 = ((IMG_SZ - FILTER1 + 2 * PAD_LR1)/STRIDE1) + 1;
|
||||
|
||||
int dout2 = dout1;
|
||||
int hout2 = hout1/POOL_STRIDE1;
|
||||
int wout2 = wout1/POOL_STRIDE1;
|
||||
|
||||
int dout3 = NUM_FIL2;
|
||||
int hout3 = ((hout2 - FILTER2+ 2 * PAD_TB2)/STRIDE2)+1;
|
||||
int wout3 = ((wout2 - FILTER2+ 2 * PAD_LR2)/STRIDE2)+1;
|
||||
|
||||
int dout4 = dout3;
|
||||
int hout4 = hout3/POOL_STRIDE2;
|
||||
int wout4 = wout3/POOL_STRIDE2;
|
||||
|
||||
int flatten_dim = dout4 * hout4 * wout4;
|
||||
|
||||
int in[IMG_SZ][IMG_SZ][NUM_FIL0];
|
||||
int inp_dim[3] = {IMG_SZ, IMG_SZ, NUM_FIL0};
|
||||
|
||||
int out1[hout1][wout1][dout1];
|
||||
int pad_1[4] = {PAD_TB1, PAD_TB1, PAD_LR1, PAD_LR1};
|
||||
int outp_dim1[3] = {hout1, wout1, dout1};
|
||||
int f_dim1[4] = {NUM_FIL1, FILTER1, FILTER1, NUM_FIL0};
|
||||
|
||||
int out2[hout2][wout2][dout2];
|
||||
int outp_dim2[3] = {hout2, wout2, dout2};
|
||||
|
||||
int out3[hout3][wout3][dout3];
|
||||
int pad_3[4] = {PAD_TB2, PAD_TB2, PAD_LR2, PAD_LR2};
|
||||
int outp_dim3[3] = {hout3, wout3, dout3};
|
||||
int f_dim3[4] = {NUM_FIL2, FILTER2, FILTER2, NUM_FIL1};
|
||||
|
||||
int out4[hout4][wout4][dout4];
|
||||
int outp_dim4[3] = {hout4, wout4, dout4};
|
||||
|
||||
int out5[flatten_dim];
|
||||
|
||||
int out6[DENSE_DIM1];
|
||||
int out7[DENSE_DIM2];
|
||||
|
||||
int out[OUT_DIM];
|
||||
|
||||
for (int iter = 0; iter < SAMPLES; iter++){
|
||||
|
||||
for(int i = 0; i < IMG_SZ; i++){
|
||||
for(int j = 0; j < IMG_SZ; j++){
|
||||
for(int k = 0; k < NUM_FIL0; k++){
|
||||
in[i][j][k] = input[i][j][k][iter];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pcount_enable(1);
|
||||
|
||||
conv2(inp_dim, f_dim1, outp_dim1, in, F1, B1, out1, STRIDE1, pad_1, SB1, MV1, SV1);
|
||||
avgpool2(outp_dim1, outp_dim2, out1, out2, POOL_SIZE1, POOL_STRIDE1);
|
||||
|
||||
conv2(outp_dim2, f_dim3, outp_dim3, out2, F2, B2, out3, STRIDE2, pad_3, SB2, MV2, SV2);
|
||||
avgpool2(outp_dim3, outp_dim4, out3, out4, POOL_SIZE2, POOL_STRIDE2);
|
||||
|
||||
flatten(outp_dim4, out4, out5);
|
||||
|
||||
mlp_layer(out5, out6, flatten_dim, DENSE_DIM1, W1, B3, SB3, MV3, SV3);
|
||||
mlp_layer(out6, out7, DENSE_DIM1, DENSE_DIM2, W2, B4, SB4, MV4, SV4);
|
||||
mlp_layer(out7, out, DENSE_DIM2, OUT_DIM, W3, B5, SB5, MV5, SV5);
|
||||
|
||||
pcount_enable(0);
|
||||
|
||||
puts("Output Layer Values:\n");
|
||||
for(int i = 0; i < OUT_DIM; i++) {
|
||||
puthex(out[i]);
|
||||
puts("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
|
||||
pcount_enable(0);
|
||||
|
||||
lenet5_mnist();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
lenet5_mnist.o: lenet5_mnist.c \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/simple_system_common.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/simple_system_regs.h \
|
||||
cnn_weights.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/fully_connected.h \
|
||||
ibex_cnn_params.h ibex_inputs.h \
|
||||
/home/alexism/Desktop/Ibex_Items/ISA-extensions-for-Multi-Pumped-Soft-SIMD-Operations/inference_codes/common/conv2d.h
|
||||
BIN
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user