submission 23139
KernelBot user 423 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.
fp8.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-23139?include=source"interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz
Benchmark evidence
18 measurements across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
180.5µs
#69 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
180.6µs
#69 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
187.3µs
#62 of 98
2025-05-16
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
231.5µs
#54 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
233.6µs
#48 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
257.4µs
#52 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
457.2µs
#57 of 98
2025-05-16
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
1.31ms
#63 of 98
2025-05-16
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:450509d20247651e70f7bb6befdaa43045ff426e0291a7e85073d651e8002dcf
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
fp8.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0NCiMhUE9QQ09STiBncHVzIE1JMzAwDQoNCmltcG9ydCBvcw0KZnJvbSB0YXNrIGltcG9ydCBpbnB1dF90LCBvdXRwdXRfdA0KZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQ0KDQpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIg0KDQpzcmMgPSByIiIiDQojaW5jbHVkZSA8aGlwL2FtZF9kZXRhaWwvYW1kX2hpcF9iZjE2Lmg+DQojaW5jbHVkZSA8aGlwL2FtZF9kZXRhaWwvYW1kX2hpcF9mcDguaD4NCiNpbmNsdWRlIDxoaXAvaGlwX3J1bnRpbWUuaD4NCg0KX19ob3N0X18gX19kZXZpY2VfXyBfX2ZvcmNlaW5saW5lX18gdWludDMyX3QgY2Rpdih1aW50MzJfdCBhLCB1aW50MzJfdCBiKSB7DQogICAgcmV0dXJuIChhICsgYiAtIDEpIC8gYjsNCn0NCg0Kc3RhdGljIGNvbnN0ZXhwciBpbnQgRlA4X1BFUl9MT0FEID0gMTY7DQpzdGF0aWMgY29uc3RleHByIGludCBTQ0FMRV9TSVpFID0gMTI4Ow0Kc3RhdGljIGNvbnN0ZXhwciBpbnQgV0FWRUZST05UX1NJWkUgPSA2NDsNCg0KdGVtcGxhdGUgPGNvbnN0IHVpbnQzMl90IEJMT0NLLCBjb25zdCB1aW50MzJfdCBOVU1CRVJfT0ZfVEhSRUFEUz4NCl9fZ2xvYmFsX18gdm9pZCBmcDhfa2VybmVsKA0KICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXogKkEsDQogICAgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiAqQiwNCiAgICBjb25zdCBmbG9hdCAqQV9zY2FsZSwNCiAgICBjb25zdCBmbG9hdCAqQl9zY2FsZSwNCiAgICBfX2hpcF9iZmxvYXQxNiAqQywNCiAgICB1aW50MzJfdCBNLCB1aW50MzJfdCBLLCB1aW50MzJfdCBOKSB7DQogICAgdXNpbmcgZmxvYXR4MTYgPSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSkpIGZsb2F0Ow0KDQogICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDSFVOSyA9IEJMT0NLIC8gRlA4X1BFUl9MT0FEOw0KDQogICAgdWludDMyX3Qgcm93T2Zmc2V0ID0gYmxvY2tJZHgueCAqIEJMT0NLOw0KICAgIHVpbnQzMl90IGNvbE9mZnNldCA9IGJsb2NrSWR4LnkgKiBCTE9DSzsNCg0KICAgIHVpbnQzMl90IGlubmVyQ29sID0gKHRocmVhZElkeC54ICUgQ0hVTkspICogRlA4X1BFUl9MT0FEOw0KICAgIHVpbnQzMl90IGlubmVyUm93ID0gdGhyZWFkSWR4LnggLyBDSFVOSzsNCg0KICAgIHVpbnQzMl90IHdhcnBDb2xPZmZzZXQgPSAoKHRocmVhZElkeC54IC8gV0FWRUZST05UX1NJWkUpICUgKEJMT0NLIC8gMzIpKSAqIDMyOw0KICAgIHVpbnQzMl90IHdhcnBSb3dPZmZzZXQgPSAoKHRocmVhZElkeC54IC8gV0FWRUZST05UX1NJWkUpIC8gKEJMT0NLIC8gMzIpKSAqIDMyOw0KICAgIHVpbnQzMl90IHdhcnBYID0gdGhyZWFkSWR4LnggJSAzMjsNCiAgICB1aW50MzJfdCB3YXJwWSA9ICh0aHJlYWRJZHgueCAlIFdBVkVGUk9OVF9TSVpFKSAvIDMyOw0KDQogICAgX19zaGFyZWRfXyBfX2hpcF9mcDhfZTRtM19mbnV6IEFzW0JMT0NLICogQkxPQ0tdOw0KICAgIF9fc2hhcmVkX18gX19oaXBfZnA4X2U0bTNfZm51eiBCc1tCTE9DSyAqIEJMT0NLXTsNCiAgICBfX3NoYXJlZF9fIGZsb2F0IFdzW0JMT0NLXTsNCiAgICBmbG9hdCBiX3NjYWxlID0gMDsNCg0KICAgIF9faGlwX2ZwOF9lNG0zX2ZudXogYVs4XTsNCiAgICBfX2hpcF9mcDhfZTRtM19mbnV6IGJbOF07DQogICAgZmxvYXR4MTYgZCA9IHswfTsNCiAgICBmbG9hdHgxNiBjID0gezB9Ow0KDQogICAgZm9yICh1aW50MzJfdCB0aWxlT2Zmc2V0ID0gMDsgdGlsZU9mZnNldCA8IEs7IHRpbGVPZmZzZXQgKz0gQkxPQ0spIHsNCiAgICAgICAgYl9zY2FsZSA9IEJfc2NhbGVbKHRpbGVPZmZzZXQgLyBTQ0FMRV9TSVpFKSAqIGNkaXYoTiwgU0NBTEVfU0laRSkgKyAoY29sT2Zmc2V0IC8gU0NBTEVfU0laRSldOw0KDQogICAgICAgIGlmICh0aHJlYWRJZHgueCA8IEJMT0NLKSB7DQogICAgICAgICAgICBXc1t0aHJlYWRJZHgueF0gPSBBX3NjYWxlWyh0aWxlT2Zmc2V0IC8gU0NBTEVfU0laRSkgKiBNICsgKHJvd09mZnNldCArIHRocmVhZElkeC54KV07DQogICAgICAgIH0NCg0KICAgICAgICB1aW50MzJfdCBpbm5lclJvd09mZnNldCA9IHRpbGVPZmZzZXQgKyBpbm5lclJvdzsNCiAgICAgICAgdWludDMyX3QgaW5uZXJDb2xPZmZzZXRBID0gcm93T2Zmc2V0ICsgaW5uZXJDb2w7DQogICAgICAgIHVpbnQzMl90IGlubmVyQ29sT2Zmc2V0QiA9IGNvbE9mZnNldCArIGlubmVyQ29sOw0KICAgICAgICBpZiAoKGlubmVyQ29sT2Zmc2V0QSkgPCBNKSB7DQogICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxmbG9hdDQgKj4oJkFzW2lubmVyUm93ICogQkxPQ0sgKyBpbm5lckNvbF0pID0NCiAgICAgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBmbG9hdDQgKj4oJkFbKGlubmVyUm93T2Zmc2V0KSpNICsgKGlubmVyQ29sT2Zmc2V0QSldKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgoaW5uZXJDb2xPZmZzZXRCKSA8IE4pIHsNCiAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGZsb2F0NCAqPigmQnNbaW5uZXJSb3cgKiBCTE9DSyArIGlubmVyQ29sXSkgPQ0KICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0NCAqPigmQlsoaW5uZXJSb3dPZmZzZXQpKk4gKyAoaW5uZXJDb2xPZmZzZXRCKV0pOw0KICAgICAgICB9DQoNCiAgICAgICAgX19zeW5jdGhyZWFkcygpOw0KICAgICAgICBjID0gezB9Ow0KICAgICAgICBmb3IgKHVpbnQzMl90IEJsb2NrT2Zmc2V0ID0gMDsgQmxvY2tPZmZzZXQgPCBCTE9DSzsgQmxvY2tPZmZzZXQgKz0gMTYpIHsNCiNwcmFnbWEgdW5yb2xsDQogICAgICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgODsgKytpKSB7DQogICAgICAgICAgICAgICAgYVtpXSA9IEFzWyhCbG9ja09mZnNldCArIHdhcnBZICogOCArIGkpICogQkxPQ0sgKyB3YXJwUm93T2Zmc2V0ICsgd2FycFhdOw0KICAgICAgICAgICAgICAgIGJbaV0gPSBCc1soQmxvY2tPZmZzZXQgKyB3YXJwWSAqIDggKyBpKSAqIEJMT0NLICsgd2FycENvbE9mZnNldCArIHdhcnBYXTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgYyA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOCgNCiAgICAgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxsb25nICo+KGEpLCAqcmVpbnRlcnByZXRfY2FzdDxsb25nICo+KGIpLCBjLCAwLCAwLCAwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCA0OyArK2opIHsNCiAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCA0OyArK2kpIHsNCiAgICAgICAgICAgICAgICBkW2kgKyBqICogNF0gKz0gY1tpICsgaiAqIDRdICogV3Nbd2FycFJvd09mZnNldCArIGogKiA4ICsgd2FycFkgKiA0ICsgaV0gKiBiX3NjYWxlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgX19zeW5jdGhyZWFkcygpOw0KICAgIH0NCg0KICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCA0OyArK2opIHsNCiAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IDQ7ICsraSkgew0KICAgICAgICAgICAgY29uc3QgdWludDMyX3Qgcm93ID0gcm93T2Zmc2V0ICsgd2FycFJvd09mZnNldCArIGogKiA4ICsgd2FycFkgKiA0ICsgaTsNCiAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGNvbCA9IGNvbE9mZnNldCArIHdhcnBDb2xPZmZzZXQgKyB3YXJwWDsNCiAgICAgICAgICAgIGlmIChyb3cgPCBNICYmIGNvbCA8IE4pIHsNCiAgICAgICAgICAgICAgICBDW3JvdyAqIE4gKyBjb2xdID0gKF9faGlwX2JmbG9hdDE2KWRbaSArIGogKiA0XTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0KdGVtcGxhdGUgPGNvbnN0IHVpbnQzMl90IEJMT0NLLCBjb25zdCB1aW50MzJfdCBOVU1CRVJfT0ZfVEhSRUFEUywgY29uc3QgdWludDMyX3QgU0hBUkVEX01FTU9SWV9TSVpFPg0KX19nbG9iYWxfXyB2b2lkIGZwOF9rZXJuZWxfbGFyZ2UoDQogICAgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiAqQSwNCiAgICBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6ICpCLA0KICAgIGNvbnN0IGZsb2F0ICpBX3NjYWxlLA0KICAgIGNvbnN0IGZsb2F0ICpCX3NjYWxlLA0KICAgIF9faGlwX2JmbG9hdDE2ICpDLA0KICAgIHVpbnQzMl90IE0sIHVpbnQzMl90IEssIHVpbnQzMl90IE4pIHsNCiAgICB1c2luZyBmbG9hdHgxNiA9IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiAqIHNpemVvZihmbG9hdCkpKSkgZmxvYXQ7DQoNCiAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IENIVU5LID0gQkxPQ0sgLyBGUDhfUEVSX0xPQUQ7IC8vIEEgYmxvY2sgaXMgc3BsaXQgaW50byBDSFVOSyBjaHVua3MgYmFzZWQgb24gdGhlIHF1YW50aXR5IG9mIEZQOHMgdGhhdCBjYW4gYmUgbG9hZGVkIGluIG9uZSBnbw0KDQogICAgdWludDMyX3QgdGlsZU9mZnNldFJvdyA9IGJsb2NrSWR4LnggKiBCTE9DSzsgICAgIC8vIEhvdyBtYW55IGJsb2NrcyBvZiBtIGhhdmUgYmVlbiBwcm9jZXNzZWQNCiAgICB1aW50MzJfdCB0aWxlT2Zmc2V0Q29sID0gYmxvY2tJZHgueSAqIEJMT0NLICogMjsgLy8gSG93IG1hbnkgYmxvY2tzIG9mIG4gaGF2ZSBiZWVuIHByb2Nlc3NlZCwgMiBibG9ja3Mgb2YgbiBhcmUgcHJvY2Vzc2VkIGluIG9uZSBrZXJuZWwgbGF1bmNoDQoNCiAgICB1aW50MzJfdCBzaGFyZWRNZW1vcnlSb3cgPSB0aHJlYWRJZHgueCAvIENIVU5LOw0KICAgIHVpbnQzMl90IHNoYXJlZE1lbW9yeUNvbCA9ICh0aHJlYWRJZHgueCAlIENIVU5LKSAqIEZQOF9QRVJfTE9BRDsNCg0KICAgIHVpbnQzMl90IHdhcnBSb3dPZmZzZXQgPSAoKHRocmVhZElkeC54IC8gV0FWRUZST05UX1NJWkUpIC8gKEJMT0NLIC8gMzIpKSAqIDMyOw0KICAgIHVpbnQzMl90IHdhcnBDb2xPZmZzZXQgPSAoKHRocmVhZElkeC54IC8gV0FWRUZST05UX1NJWkUpICUgKEJMT0NLIC8gMzIpKSAqIDMyOw0KICAgIHVpbnQzMl90IHdhcnBYID0gdGhyZWFkSWR4LnggJSAzMjsNCiAgICB1aW50MzJfdCB3YXJwWSA9ICh0aHJlYWRJZHgueCAlIFdBVkVGUk9OVF9TSVpFKSAvIDMyOw0KDQogICAgX19zaGFyZWRfXyBfX2hpcF9mcDhfZTRtM19mbnV6IEFzW1NIQVJFRF9NRU1PUllfU0laRV07DQogICAgX19zaGFyZWRfXyBfX2hpcF9mcDhfZTRtM19mbnV6IEJzW1NIQVJFRF9NRU1PUllfU0laRSAqIDJdOw0KICAgIF9fc2hhcmVkX18gZmxvYXQgV3NbQkxPQ0tdOw0KICAgIGZsb2F0IGJfc2NhbGUgPSAwOw0KDQogICAgX19oaXBfZnA4X2U0bTNfZm51eiBhWzhdOw0KICAgIF9faGlwX2ZwOF9lNG0zX2ZudXogYls4XTsNCiAgICBmbG9hdHgxNiBjMSA9IHswfTsNCiAgICBmbG9hdHgxNiBkMSA9IHswfTsNCg0KICAgIGZsb2F0eDE2IGMyID0gezB9Ow0KICAgIGZsb2F0eDE2IGQyID0gezB9Ow0KDQogICAgZm9yICh1aW50MzJfdCBrVGlsZU9mZnNldCA9IDA7IGtUaWxlT2Zmc2V0IDwgSzsga1RpbGVPZmZzZXQgKz0gQkxPQ0spIHsNCiAgICAgICAgYl9zY2FsZSA9IEJfc2NhbGVbKGtUaWxlT2Zmc2V0IC8gU0NBTEVfU0laRSkgKiBjZGl2KE4sIFNDQUxFX1NJWkUpICsgKHRpbGVPZmZzZXRDb2wgLyBTQ0FMRV9TSVpFKV07DQoNCiAgICAgICAgaWYgKHRocmVhZElkeC54IDwgQkxPQ0spIHsNCiAgICAgICAgICAgIFdzW3RocmVhZElkeC54XSA9IEFfc2NhbGVbKGtUaWxlT2Zmc2V0IC8gU0NBTEVfU0laRSkgKiBNICsgKHRpbGVPZmZzZXRSb3cgKyB0aHJlYWRJZHgueCldOw0KICAgICAgICB9DQoNCiAgICAgICAgdWludDMyX3QgbWFpbk1lbW9yeUNvbCA9IGtUaWxlT2Zmc2V0ICsgc2hhcmVkTWVtb3J5Um93OyAvLyBUaGlzIGNhbiBzZWVtIGNvbmZ1c2luZywgYnV0IHdlIGFyZSBsb2FkaW5nIGluIGNvbHVtbnMgZnJvbSBtYWluIG1lbW9yeSBhbmQgdHVybmluZyB0aGVtIGludG8gcm93cyBpbiBzaGFyZWQgbWVtb3J5DQogICAgICAgIHVpbnQzMl90IG1haW5NZW1vcnlSb3dBID0gdGlsZU9mZnNldFJvdyArIHNoYXJlZE1lbW9yeUNvbDsNCiAgICAgICAgdWludDMyX3QgbWFpbk1lbW9yeVJvd0IgPSB0aWxlT2Zmc2V0Q29sICsgc2hhcmVkTWVtb3J5Q29sOw0KICAgICAgICBpZiAoKG1haW5NZW1vcnlSb3dBKSA8IE0pIHsNCiAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGZsb2F0NCAqPigmQXNbc2hhcmVkTWVtb3J5Um93ICogQkxPQ0sgKyBzaGFyZWRNZW1vcnlDb2xdKSA9DQogICAgICAgICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZmxvYXQ0ICo+KCZBWyhtYWluTWVtb3J5Q29sKSpNICsgKG1haW5NZW1vcnlSb3dBKV0pOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYgKChtYWluTWVtb3J5Um93QikgPCBOKSB7DQogICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxmbG9hdDQgKj4oJkJzW3NoYXJlZE1lbW9yeVJvdyAqIEJMT0NLICsgc2hhcmVkTWVtb3J5Q29sXSkgPQ0KICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0NCAqPigmQlsobWFpbk1lbW9yeUNvbCkqTiArIChtYWluTWVtb3J5Um93QildKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmICgobWFpbk1lbW9yeVJvd0IgKyBCTE9DSykgPCBOKSB7DQogICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxmbG9hdDQgKj4oJkJzW3NoYXJlZE1lbW9yeVJvdyAqIEJMT0NLICsgc2hhcmVkTWVtb3J5Q29sICsgU0hBUkVEX01FTU9SWV9TSVpFXSkgPQ0KICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0NCAqPigmQlsobWFpbk1lbW9yeUNvbCkqTiArIChtYWluTWVtb3J5Um93QiArIEJMT0NLKV0pOw0KICAgICAgICB9DQoNCiAgICAgICAgX19zeW5jdGhyZWFkcygpOw0KICAgICAgICBjMSA9IHswfTsNCiAgICAgICAgYzIgPSB7MH07DQogICAgICAgIGZvciAodWludDMyX3QgQmxvY2tPZmZzZXQgPSAwOyBCbG9ja09mZnNldCA8IEJMT0NLOyBCbG9ja09mZnNldCArPSAxNikgew0KI3ByYWdtYSB1bnJvbGwNCiAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCA4OyArK2kpIHsNCiAgICAgICAgICAgICAgICBhW2ldID0gQXNbKEJsb2NrT2Zmc2V0ICsgd2FycFkgKiA4ICsgaSkgKiBCTE9DSyArIHdhcnBSb3dPZmZzZXQgKyB3YXJwWF07DQogICAgICAgICAgICAgICAgYltpXSA9IEJzWyhCbG9ja09mZnNldCArIHdhcnBZICogOCArIGkpICogQkxPQ0sgKyB3YXJwQ29sT2Zmc2V0ICsgd2FycFhdOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBjMSA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOCgNCiAgICAgICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDxsb25nICo+KGEpLCAqcmVpbnRlcnByZXRfY2FzdDxsb25nICo+KGIpLCBjMSwgMCwgMCwgMCk7DQoNCiAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCA4OyArK2kpIHsNCiAgICAgICAgICAgICAgICBiW2ldID0gQnNbKEJsb2NrT2Zmc2V0ICsgd2FycFkgKiA4ICsgaSkgKiBCTE9DSyArIHdhcnBDb2xPZmZzZXQgKyB3YXJwWCArIFNIQVJFRF9NRU1PUllfU0laRV07DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGMyID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KA0KICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGxvbmcgKj4oYSksICpyZWludGVycHJldF9jYXN0PGxvbmcgKj4oYiksIGMyLCAwLCAwLCAwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCA0OyArK2opIHsNCiAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCA0OyArK2kpIHsNCiAgICAgICAgICAgICAgICBkMVtpICsgaiAqIDRdICs9IGMxW2kgKyBqICogNF0gKiBXc1t3YXJwUm93T2Zmc2V0ICsgaiAqIDggKyB3YXJwWSAqIDQgKyBpXSAqIGJfc2NhbGU7DQogICAgICAgICAgICAgICAgZDJbaSArIGogKiA0XSArPSBjMltpICsgaiAqIDRdICogV3Nbd2FycFJvd09mZnNldCArIGogKiA4ICsgd2FycFkgKiA0ICsgaV0gKiBiX3NjYWxlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgX19zeW5jdGhyZWFkcygpOw0KICAgIH0NCg0KICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCA0OyArK2opIHsNCiAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IDQ7ICsraSkgew0KICAgICAgICAgICAgY29uc3QgdWludDMyX3Qgcm93ID0gdGlsZU9mZnNldFJvdyArIHdhcnBSb3dPZmZzZXQgKyBqICogOCArIHdhcnBZICogNCArIGk7DQogICAgICAgICAgICBjb25zdCB1aW50MzJfdCBjb2wgPSB0aWxlT2Zmc2V0Q29sICsgd2FycENvbE9mZnNldCArIHdhcnBYOw0KICAgICAgICAgICAgaWYgKHJvdyA8IE0gJiYgY29sIDwgTikgew0KICAgICAgICAgICAgICAgIENbcm93ICogTiArIGNvbF0gPSAoX19oaXBfYmZsb2F0MTYpZDFbaSArIGogKiA0XTsNCiAgICAgICAgICAgICAgICBpZiAoY29sICsgQkxPQ0sgPCBOKSB7DQogICAgICAgICAgICAgICAgICAgIENbcm93ICogTiArIGNvbCArIEJMT0NLXSA9IChfX2hpcF9iZmxvYXQxNilkMltpICsgaiAqIDRdOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0Kdm9pZCBydW4oDQogICAgY29uc3QgdWludHB0cl90IGFfcHRyLA0KICAgIGNvbnN0IHVpbnRwdHJfdCBiX3B0ciwNCiAgICBjb25zdCB1aW50cHRyX3QgYV9zY2FsZV9wdHIsDQogICAgY29uc3QgdWludHB0cl90IGJfc2NhbGVfcHRyLA0KICAgIGNvbnN0IHVpbnRwdHJfdCBjX3B0ciwNCiAgICBjb25zdCB1aW50MzJfdCBNLA0KICAgIGNvbnN0IHVpbnQzMl90IE4sDQogICAgY29uc3QgdWludDMyX3QgSykgew0KICAgIGNvbnN0IGF1dG8gKkEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXogKj4oYV9wdHIpOw0KICAgIGNvbnN0IGF1dG8gKkIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXogKj4oYl9wdHIpOw0KICAgIGNvbnN0IGF1dG8gKkFfc2NhbGUgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0ICo+KGFfc2NhbGVfcHRyKTsNCiAgICBjb25zdCBhdXRvICpCX3NjYWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBmbG9hdCAqPihiX3NjYWxlX3B0cik7DQogICAgYXV0byAqQyA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19oaXBfYmZsb2F0MTYgKj4oY19wdHIpOw0KDQogICAgaWYgKE0gKiBOIDwgMzAwMDAwMCkgew0KICAgICAgICBjb25zdCB1aW50MzJfdCBCTE9DSyA9IDY0Ow0KDQogICAgICAgIGNvbnN0IHVpbnQzMl90IE5VTUJFUl9PRl9USFJFQURTID0gKEJMT0NLICogQkxPQ0spIC8gRlA4X1BFUl9MT0FEOw0KDQogICAgICAgIGRpbTMgdGhyZWFkc1BlckJsb2NrKE5VTUJFUl9PRl9USFJFQURTKTsNCiAgICAgICAgZGltMyBudW1CbG9ja3MoY2RpdihNLCBCTE9DSyksIGNkaXYoTiwgQkxPQ0spKTsNCg0KICAgICAgICBmcDhfa2VybmVsPEJMT0NLLCBOVU1CRVJfT0ZfVEhSRUFEUz48PDxudW1CbG9ja3MsIHRocmVhZHNQZXJCbG9jaz4+PigNCiAgICAgICAgICAgIEEsDQogICAgICAgICAgICBCLA0KICAgICAgICAgICAgQV9zY2FsZSwNCiAgICAgICAgICAgIEJfc2NhbGUsDQogICAgICAgICAgICBDLA0KICAgICAgICAgICAgTSwgSywgTik7DQogICAgfSBlbHNlIGlmIChNICogTiA8IDcwMDAwMDApIHsNCiAgICAgICAgY29uc3QgdWludDMyX3QgQkxPQ0sgPSAxMjg7DQoNCiAgICAgICAgY29uc3QgdWludDMyX3QgTlVNQkVSX09GX1RIUkVBRFMgPSAoQkxPQ0sgKiBCTE9DSykgLyBGUDhfUEVSX0xPQUQ7DQoNCiAgICAgICAgZGltMyB0aHJlYWRzUGVyQmxvY2soTlVNQkVSX09GX1RIUkVBRFMpOw0KICAgICAgICBkaW0zIG51bUJsb2NrcyhjZGl2KE0sIEJMT0NLKSwgY2RpdihOLCBCTE9DSykpOw0KDQogICAgICAgIGZwOF9rZXJuZWw8QkxPQ0ssIE5VTUJFUl9PRl9USFJFQURTPjw8PG51bUJsb2NrcywgdGhyZWFkc1BlckJsb2NrPj4+KA0KICAgICAgICAgICAgQSwNCiAgICAgICAgICAgIEIsDQogICAgICAgICAgICBBX3NjYWxlLA0KICAgICAgICAgICAgQl9zY2FsZSwNCiAgICAgICAgICAgIEMsDQogICAgICAgICAgICBNLCBLLCBOKTsNCiAgICB9IGVsc2Ugew0KICAgICAgICBjb25zdCB1aW50MzJfdCBCTE9DSyA9IDY0Ow0KICAgICAgICBjb25zdCB1aW50MzJfdCBTSEFSRURfTUVNT1JZX1NJWkUgPSBCTE9DSyAqIEJMT0NLOw0KDQogICAgICAgIGNvbnN0IHVpbnQzMl90IE5VTUJFUl9PRl9USFJFQURTID0gKEJMT0NLICogQkxPQ0spIC8gRlA4X1BFUl9MT0FEOw0KDQogICAgICAgIGRpbTMgdGhyZWFkc1BlckJsb2NrKE5VTUJFUl9PRl9USFJFQURTKTsNCiAgICAgICAgZGltMyBudW1CbG9ja3MoY2RpdihNLCBCTE9DSyksIGNkaXYoTiwgQkxPQ0sgKiAyKSk7DQoNCiAgICAgICAgZnA4X2tlcm5lbF9sYXJnZTxCTE9DSywgTlVNQkVSX09GX1RIUkVBRFMsIFNIQVJFRF9NRU1PUllfU0laRT48PDxudW1CbG9ja3MsIHRocmVhZHNQZXJCbG9jaz4+PigNCiAgICAgICAgICAgIEEsDQogICAgICAgICAgICBCLA0KICAgICAgICAgICAgQV9zY2FsZSwNCiAgICAgICAgICAgIEJfc2NhbGUsDQogICAgICAgICAgICBDLA0KICAgICAgICAgICAgTSwgSywgTik7DQogICAgfQ0KfQ0KIiIiDQoNCnBvc3RmaXggPSAiIiINCiNpbmNsdWRlIDxweWJpbmQxMS9weWJpbmQxMS5oPg0KDQpQWUJJTkQxMV9NT0RVTEUoZnA4LCBtKSB7DQogIG0uZGVmKCJmcDgiLCAmcnVuLCAiSElQIGtlcm5lbCIpOw0KfQ0KIiIiDQoNCmZ1bGwgPSBzcmMgKyBwb3N0Zml4DQoNCmhpcF9tb2R1bGUgPSBsb2FkX2lubGluZSgNCiAgICBuYW1lPSJmcDgiLA0KICAgIGNwcF9zb3VyY2VzPSIiLA0KICAgIGN1ZGFfc291cmNlcz1mdWxsLnJlcGxhY2UoJ0AnLCBjaHIoOTIpKSwNCiAgICB3aXRoX2N1ZGE9VHJ1ZSwNCiAgICB2ZXJib3NlPVRydWUsDQogICAgZXh0cmFfY3VkYV9jZmxhZ3M9WyItT2Zhc3QiLCAiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLWZmcC1jb250cmFjdD1mYXN0Il0sDQogICAgbm9faW1wbGljaXRfaGVhZGVycz1UcnVlLA0KKQ0KDQpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoNCiAgICAiIiINCiAgICBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgYmxvY2stc2NhbGUgZnA4IGdlbW0NCiAgICBBcmdzOg0KICAgICAgICBkYXRhOiBUdXBsZSB0aGF0IGV4cGFuZHMgdG86DQogICAgICAgICAgICBhOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbSwga10sDQogICAgICAgICAgICBiOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbiwga10sDQogICAgICAgICAgICBhX3NjYWxlOiB0b3JjaC5UZW5zb3JbZmxvYXQzMl0gb2Ygc2hhcGUgW20sIGsgLy8gMTI4XSwNCiAgICAgICAgICAgIGJfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbiAvLyAxMjgsIGsgLy8gMTI4XSwNCiAgICAgICAgICAgIGM6IHRvcmNoLlRlbnNvcltiZmxvYXQxNl0gb2Ygc2hhcGUgW20sIG5dDQogICAgUmV0dXJuczoNCiAgICAgICAgVGVuc29yIGNvbnRhaW5pbmcgb3V0cHV0IGluIGJmMTYNCiAgICAiIiINCg0KICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhDQoNCiAgICBtID0gYS5zaGFwZVswXQ0KICAgIG4gPSBiLnNoYXBlWzBdDQogICAgayA9IGEuc2hhcGVbMV0NCg0KICAgIGhpcF9tb2R1bGUuZnA4KA0KICAgICAgICBhLmRhdGFfcHRyKCksDQogICAgICAgIGIuZGF0YV9wdHIoKSwNCiAgICAgICAgYV9zY2FsZS5kYXRhX3B0cigpLA0KICAgICAgICBiX3NjYWxlLmRhdGFfcHRyKCksDQogICAgICAgIGMuZGF0YV9wdHIoKSwNCiAgICAgICAgbSwNCiAgICAgICAgbiwNCiAgICAgICAgaywNCiAgICApDQoNCiAgICByZXR1cm4gYw0KSource code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Best evidence level for this revision: reported
JSON