submission 29878
KernelBot user 376 · 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.
baguette_gemm_6.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-29878?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=512 · seed=6563
AMD Instinct MI300X
51.5µs
#8 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
60.6µs
#11 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
94.7µs
#10 of 98
2025-06-01
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
149.6µs
#14 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
155.3µs
#19 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
174.4µs
#16 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
247.1µs
#9 of 98
2025-06-01
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
711.5µs
#16 of 98
2025-06-01
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:c80d5f12d833b4e5d195eab9ffe473f8510c3767dcf3d431a9712d5206550b7b
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
baguette_gemm_6.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1mcDgtbW0KZnJvbSB0YXNrIGltcG9ydCBpbnB1dF90LCBvdXRwdXRfdAppbXBvcnQgdG9yY2gKZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQppbXBvcnQgdGltZQppbXBvcnQgb3MKaW1wb3J0IHN5cwoKaWYgIlBZVE9SQ0hfUk9DTV9BUkNIIiBub3QgaW4gb3MuZW52aXJvbjoKICAgIG9zLmVudmlyb25bIlBZVE9SQ0hfUk9DTV9BUkNIIl0gPSAiZ2Z4OTQyOnhuYWNrLSIKCmtlcm5lbF9jcHAgPSByIiIiCiNpbmNsdWRlIDxoaXAvaGlwX3J1bnRpbWUuaD4KI2luY2x1ZGUgPGhpcC9oaXBfZnAxNi5oPgojaW5jbHVkZSA8aGlwL2hpcF9mcDguaD4KI2luY2x1ZGUgPHB5YmluZDExL3B5YmluZDExLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CgoKdHlwZWRlZiBfX2hpcF9mcDhfZTRtM19mbnV6IGZwODsKdXNpbmcgdmVjNGYgPSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNCAqIHNpemVvZihmbG9hdCkpKSkgZmxvYXQ7CgojZGVmaW5lIFdBUlBfU0laRSA2NAojZGVmaW5lIE5fV0FSUF9ZX0RFRiAyCiNkZWZpbmUgTl9XQVJQX1hfREVGIDQKLy8gT3V0cHV0IFRpbGUgY29uZmlnCiNkZWZpbmUgVElMRV9TSVpFX1lfREVGIDEyOAojZGVmaW5lIFRJTEVfU0laRV9YX0RFRiAxMjgKI2RlZmluZSBUSUxFX0tfRElNX0RFRiAxMjgKCmNvbnN0ZXhwciBpbnQgVElMRV9TSVpFX1kgPSBUSUxFX1NJWkVfWV9ERUY7CmNvbnN0ZXhwciBpbnQgVElMRV9TSVpFX1ggPSBUSUxFX1NJWkVfWF9ERUY7CmNvbnN0ZXhwciBpbnQgS19ESU0gPSBUSUxFX0tfRElNX0RFRjsKY29uc3RleHByIGludCBOQldBUlBTX1kgPSBOX1dBUlBfWV9ERUY7IC8vIDQKY29uc3RleHByIGludCBOQldBUlBTX1ggPSBOX1dBUlBfWF9ERUY7IC8vIDIKLy8gaW50cmluc2ljIGNvbmZpZwpjb25zdGV4cHIgaW50IE1BVE1VTF9ESU1fSyA9IDMyOwpjb25zdGV4cHIgaW50IE1BVE1VTF9ESU1fTk0gPSAxNjsKY29uc3RleHByIGludCBCTE9DS19ESU0gPSBOQldBUlBTX1ggKiBOQldBUlBTX1kgKiBXQVJQX1NJWkU7IC8vIDUxMgoKdXNpbmcgdmVjNHUgPSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNCAqIHNpemVvZih1aW50MzJfdCkpKSkgdWludDMyX3Q7CnVzaW5nIHZlYzJ1ID0gX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDIgKiBzaXplb2YodWludDMyX3QpKSkpIHVpbnQzMl90Owp1c2luZyB2ZWMyc2hvcnQgPQogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDIgKiBzaXplb2YodWludDE2X3QpKSkpIHVpbnQxNl90OwoKX19kZXZpY2VfXyB2b2lkIG1hdG11bDE2eDE2KGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXogKmEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6ICpiLCBpbnQgaywgaW50IGFfY29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJfY29sLCB2ZWM0ZiAmYywgaW50IG0sIGludCBuKSB7CiAgaW50IHRpZCA9IHRocmVhZElkeC54ICUgV0FSUF9TSVpFOwogIGludCByb3cgPSBrICsgdGlkICUgOCArICh0aWQgLyAxNikgKiA4OwogIGludCBjb2wgPSAoKHRpZCAlIDE2KSAvIDgpOwogIGludCBhX2NvbF9zID0gKGFfY29sIC8gOCArIGNvbCk7CiAgaW50IGJfY29sX3MgPSAoYl9jb2wgLyA4ICsgY29sKTsKICBpbnQgY29sX2Ffc3dpenpsZWQgPSAoKGFfY29sX3MgLyAyKSBeIChyb3cgJSA4KSkgKiAyICsgYV9jb2xfcyAlIDI7CiAgaW50IGNvbF9iX3N3aXp6bGVkID0gKChiX2NvbF9zIC8gMikgXiAocm93ICUgOCkpICogMiArIGJfY29sX3MgJSAyOwoKICBhdXRvIHBhY2tlZEEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ2NF90ICo+KGEgKyByb3cgKiBtKVtjb2xfYV9zd2l6emxlZF07CiAgYXV0byBwYWNrZWRCID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCAqPihiICsgcm93ICogbSlbY29sX2Jfc3dpenpsZWRdOwoKICBjID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8xNngxNngzMl9mcDhfZnA4KHBhY2tlZEEsIHBhY2tlZEIsIGMsIDAsIDAsIDApOwp9Cgp0ZW1wbGF0ZTxib29sIGJvdW5kQ2hlY2s+Cl9fZGV2aWNlX18gdm9pZCBsb2FkTERTKGludCB3YXJwSWQsIGludCBsYW5lSWQsIGludCBrSWQsIGZwOCAqc19hLCBmcDggKnNfYiwKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnA4ICphLCBjb25zdCBmcDggKmIsIGludCBNLCBpbnQgTikgewogIAogIGNvbnN0IGZwOCAqcHRyID0gYTsKICBmcDggKmRzdCA9IHNfYTsKICBpbnQgd2FycElkTG9jYWwgPSB3YXJwSWQlNDsKICBpbnQgc3RyaWRlID0gTTsKICAKICB1aW50MzJfdCBjb2xfb2Zmc2V0ID0gVElMRV9TSVpFX1ggKiBibG9ja0lkeC54OwogIGlmICh3YXJwSWQ+PTQpewogICAgcHRyPWI7CiAgICBjb2xfb2Zmc2V0ID0gVElMRV9TSVpFX1kgKiBibG9ja0lkeC55OwogICAgZHN0PXNfYjsKICAgIHN0cmlkZT0gTjsKICB9CiAgYm9vbCBiX2NoZWNrID0gdHJ1ZTsKICBpZiBjb25zdGV4cHIgKGJvdW5kQ2hlY2spewogICAgYl9jaGVjayA9ICh3YXJwSWQ+PTQpIHx8IChjb2xfb2Zmc2V0IDwgc3RyaWRlKTsKICB9CiAgCiAgY29uc3RleHByIGludCBESU1ZID0gVElMRV9TSVpFX1kgLyA4OwogIHZlYzJ1IGJfdmFsdWVbOF0gPSB7MH07CiAgaWYgKGJfY2hlY2spewogICAgdWludDMyX3Qgcm93X29mZnNldCA9IGtJZDsKICAgIGZvciAoaW50IHIgPSAwOyByIDwgODsgcisrKSB7CiAgICAgIGludCBjb2wgPSBsYW5lSWQgJSBESU1ZOwogICAgICBpbnQgcm93ID0gciArIDMyICogd2FycElkTG9jYWwgKyA4ICogKGxhbmVJZCAvIERJTVkpOwogICAgICBiX3ZhbHVlW3JdID0gKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdmVjMnUgKj4ocHRyICsgKHJvd19vZmZzZXQgKyByb3cpICogc3RyaWRlICsgKGNvbF9vZmZzZXQgKyBjb2wgKiA4KSkpWzBdOwogICAgfQogIAogICAgdmVjMnUgcmVzdWx0X2JbOF07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkKICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA4OyArK2opIHsKICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oJnJlc3VsdF9iW2ldKVtqXSA9CiAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPigmYl92YWx1ZVtqXSlbaV07CiAgICAgIH0KCiAgICBmb3IgKGludCByID0gMDsgciA8IDg7IHIrKykgewogICAgICBpbnQgY29sID0gbGFuZUlkICUgRElNWTsKICAgICAgaW50IHJvdyA9IHIgKyAzMiAqIHdhcnBJZExvY2FsICsgOCAqIChsYW5lSWQgLyBESU1ZKTsKICAgICAgaW50IGNvbF9zd2l6emxlZCA9IDIgKiAoKGNvbCAvIDIpIF4gKHJvdyAlIDgpKSArIGNvbCAlIDI7CiAgICAgIChyZWludGVycHJldF9jYXN0PHZlYzJ1ICo+KGRzdCkpWyhESU1ZKSpyb3cgKyBjb2xfc3dpenpsZWRdID0gcmVzdWx0X2Jbcl07CiAgICB9CiAgfQp9CgpfX2dsb2JhbF9fIHZvaWQgY2FzdF9rZXJuZWwoX19oaXBfYmZsb2F0MTYgKmNfYmYxNiwgY29uc3QgZmxvYXQgKmNfZnAzMiwgaW50IE0sIGludCBOKSB7CgogICAgaW50IHRpZCA9IGJsb2NrSWR4LngqYmxvY2tEaW0ueCt0aHJlYWRJZHgueDsKICAgIGlmICh0aWQ8TSpOKXsKICAgICAgY19iZjE2W3RpZF0gPSAoX19oaXBfYmZsb2F0MTYpY19mcDMyW3RpZF07CiAgICB9Cn0KCgp0ZW1wbGF0ZSA8aW50IEtfU1BMSVQsYm9vbCBib3VuZENoZWNrLCBib29sIHVzZUF0b21pYz4KX19nbG9iYWxfXyB2b2lkIF9fbGF1bmNoX2JvdW5kc19fKE5fV0FSUF9YX0RFRiAqTl9XQVJQX1lfREVGICpXQVJQX1NJWkUpCiAgICBjdXN0b21fa2VybmVsKGNvbnN0IGZwOCAqYSwgY29uc3QgZnA4ICpiLCBjb25zdCBmbG9hdCAqYXMsIGNvbnN0IGZsb2F0ICpicywKICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYgKmMsZmxvYXQgKmNfYXRvbWljLCBpbnQgTSwgaW50IE4sIGludCBLKSB7CiAgaW50IHRpZCA9IHRocmVhZElkeC54OwogIGludCBsYW5lSWQgPSB0aWQgJSBXQVJQX1NJWkU7CgogIGludCBzcGxpdEsgPSBLIC8gS19TUExJVDsKICBpbnQga0lkU3RhcnQgPSBibG9ja0lkeC56ICogc3BsaXRLOwogIGludCBrSWRTdG9wID0gc3BsaXRLICsgYmxvY2tJZHgueiAqIHNwbGl0SzsKCiAgaW50IFNOID0gKE4gKyAxMjggLSAxKSAvIDEyODsKCiAgaW50IHdhcnBJZCA9IHRocmVhZElkeC54IC8gV0FSUF9TSVpFOwogIGludCB3YXJwSWR4ID0gd2FycElkIC8gTkJXQVJQU19ZOyAKICBpbnQgd2FycElkeSA9IHdhcnBJZCAlIE5CV0FSUFNfWTsKCiAgX19zaGFyZWRfXyBmcDggc19hW0tfRElNXVtUSUxFX1NJWkVfWF07CiAgX19zaGFyZWRfXyBmcDggc19iW0tfRElNXVtUSUxFX1NJWkVfWV07CgogIGNvbnN0ZXhwciBpbnQgV0FSUF9USUxFX1NJWkVfWSA9IFRJTEVfU0laRV9ZIC8gTkJXQVJQU19ZIC8gTUFUTVVMX0RJTV9OTTsgLy8gMgogIGNvbnN0ZXhwciBpbnQgV0FSUF9USUxFX1NJWkVfWCA9IFRJTEVfU0laRV9YIC8gTkJXQVJQU19YIC8gTUFUTVVMX0RJTV9OTTsgLy8gNAogIHZlYzRmIGNfc1tXQVJQX1RJTEVfU0laRV9YXVtXQVJQX1RJTEVfU0laRV9ZXSA9IHswfTsKCiAgZm9yIChpbnQga0lkID0ga0lkU3RhcnQ7IGtJZCA8IGtJZFN0b3A7IGtJZCArPSBLX0RJTSkgewoKICAgIGxvYWRMRFM8Ym91bmRDaGVjaz4od2FycElkLCBsYW5lSWQsIGtJZCwgJnNfYVswXVswXSwgJnNfYlswXVswXSwgYSwgYiwgTSwgTik7CiAgICBfX3N5bmN0aHJlYWRzKCk7CgogICAgdmVjNGYgY190bXBbV0FSUF9USUxFX1NJWkVfWF1bV0FSUF9USUxFX1NJWkVfWV0gPSB7MH07CiNwcmFnbWEgdW5yb2xsCiAgICBmb3IgKGludCB0X3dJZHggPSAwOyB0X3dJZHggPCBXQVJQX1RJTEVfU0laRV9YOyB0X3dJZHgrKykgewogICAgICBmb3IgKGludCB0X3dJZHkgPSAwOyB0X3dJZHkgPCBXQVJQX1RJTEVfU0laRV9ZOyB0X3dJZHkrKykgewogICAgICAgIGNvbnN0ZXhwciBpbnQgc3RlcFggPSBUSUxFX1NJWkVfWCAvIFdBUlBfVElMRV9TSVpFX1g7CiAgICAgICAgY29uc3RleHByIGludCBzdGVwWSA9IFRJTEVfU0laRV9ZIC8gV0FSUF9USUxFX1NJWkVfWTsKCiAgICAgICAgdmVjNGYgY190bXAgPSB7MC4wZiwgMC4wZiwgMC4wZiwgMC4wZn07CiNwcmFnbWEgdW5yb2xsCiAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBLX0RJTTtrICs9IE1BVE1VTF9ESU1fSykgLy8gTUFUTVVMX0RJTV9LIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBLX0RJTQogICAgICAgIHsKICAgICAgICAgIGludCBhX2NvbCA9ICh0X3dJZHggKiBzdGVwWCkgKyB3YXJwSWR4ICogTUFUTVVMX0RJTV9OTTsKICAgICAgICAgIGludCBiX2NvbCA9ICh0X3dJZHkgKiBzdGVwWSkgKyB3YXJwSWR5ICogTUFUTVVMX0RJTV9OTTsKICAgICAgICAgIG1hdG11bDE2eDE2KCZzX2FbMF1bMF0sICZzX2JbMF1bMF0sIGssIGFfY29sLCBiX2NvbCwgY190bXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJTEVfU0laRV9YLCBUSUxFX1NJWkVfWSk7CiAgICAgICAgfQoKICAgICAgICBpbnQgYV9yb3cgPSAodF93SWR4ICogc3RlcFgpICsgd2FycElkeCAqIE1BVE1VTF9ESU1fTk07CiAgICAgICAgLy8gQXBwbHkgc2NhbGluZwogICAgICAgIGludCBhc19jb2wgPSBrSWQgLyAxMjg7CiAgICAgICAgaW50IGFzX3JvdyA9IGFfcm93ICsgYmxvY2tJZHgueCAqIFRJTEVfU0laRV9YOwogICAgICAgIGludCBic19jb2wgPSBibG9ja0lkeC55OwogICAgICAgIGludCBic19yb3cgPSBrSWQgLyAxMjg7CiAgICAgICAgZmxvYXQgYnNfdmFsID0gYnNbYnNfcm93ICogU04gKyBic19jb2xdOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICAgICAgICBpbnQgcm93ID0gYXNfcm93ICsgaSArIChsYW5lSWQgLyAxNikgKiA0OwogICAgICAgICAgZmxvYXQgYXNfdmFsID0gYXNbYXNfY29sICogTSArIHJvd107CiAgICAgICAgICBjX3NbdF93SWR4XVt0X3dJZHldW2ldICs9IGNfdG1wW2ldICogYXNfdmFsICogYnNfdmFsOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIF9fc3luY3RocmVhZHMoKTsKICB9CiAgCgogIGZvciAoaW50IHRfd0lkeCA9IDA7IHRfd0lkeCA8IFdBUlBfVElMRV9TSVpFX1g7IHRfd0lkeCsrKSB7CiAgICBmb3IgKGludCB0X3dJZHkgPSAwOyB0X3dJZHkgPCBXQVJQX1RJTEVfU0laRV9ZOyB0X3dJZHkrKykgewogICAgICAvLyBvZmZzZXQgcG9pbnRpbmcgdG8gdGhlIGFjY3VtdWxhdGVkIDE2eDE2IGJsb2NrCiAgICAgIGludCBjb2xfb2Zmc2V0ID0KICAgICAgICAgIGJsb2NrSWR4LnkgKiBUSUxFX1NJWkVfWSArICAgICAgICAgICAgICAgICAvLyBUSUxFIG9mZnNldAogICAgICAgICAgKHdhcnBJZHkgKiBNQVRNVUxfRElNX05NKSArICAgICAgICAgICAgICAgIC8vIFdhcnAgb2Zmc2V0CiAgICAgICAgICB0X3dJZHkgKiAoVElMRV9TSVpFX1kgLyBXQVJQX1RJTEVfU0laRV9ZKTsgLy8gV2FycCB0aWxlIG9mZnNldAoKICAgICAgaW50IHJvd19vZmZzZXQgPQogICAgICAgICAgYmxvY2tJZHgueCAqIFRJTEVfU0laRV9YICsgICAgICAgICAgICAgICAgIC8vIFRJTEUgb2Zmc2V0CiAgICAgICAgICAod2FycElkeCAqIE1BVE1VTF9ESU1fTk0pICsgICAgICAgICAgICAgICAgLy8gV2FycCBvZmZzZXQKICAgICAgICAgIHRfd0lkeCAqIChUSUxFX1NJWkVfWCAvIFdBUlBfVElMRV9TSVpFX1gpOyAvLyBXYXJwIHRpbGUgb2Zmc2V0CgogICAgICBhdXRvIHJlcyA9IGNfc1t0X3dJZHhdW3Rfd0lkeV07CgogICAgICBib29sIGJfY2hlY2sgPSB0cnVlOwogICAgICBpZiBjb25zdGV4cHIgKGJvdW5kQ2hlY2spewogICAgICAgIGJfY2hlY2sgPSAocm93X29mZnNldCkgPCBNICYmIChjb2xfb2Zmc2V0KSA8IE47CiAgICAgIH0KICAgICAgaWYgKGJfY2hlY2spIHsKICAgICAgICAgIC8vIEMgaXMgc3RvcmVkIG9uIDQgVkdQUnMKICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQogICAgICAgICAgewogICAgICAgICAgICAgIGludCBjb2wgPSBsYW5lSWQgJSAxNjsKICAgICAgICAgICAgICBpbnQgcm93ID0gaSArIChsYW5lSWQgLyAxNikgKiA0OwogICAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAodXNlQXRvbWljKXsKICAgICAgICAgICAgICAgIGF0b21pY0FkZCggJmNfYXRvbWljWyhyb3dfb2Zmc2V0ICsgcm93KSAqIE4gKyAoY29sX29mZnNldCArIGNvbCldLHJlc1tpXSk7CiAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICBjWyhyb3dfb2Zmc2V0ICsgcm93KSAqIE4gKyAoY29sX29mZnNldCArIGNvbCldID0gKF9faGlwX2JmbG9hdDE2KShyZXNbaV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAKICAgICAgfQogICAgfQogIH0KfQoKCnN0cnVjdCBMYXVuY2hDb25maWcgewogIGludCBLX1NQTElUOwogIGJvb2wgdXNlQXRvbWljOwogIGJvb2wgYm91bmRDaGVjazsKfTsKCnRlbXBsYXRlIDxpbnQgS19TUExJVCwgYm9vbCBib3VuZENoZWNrLCBib29sIHVzZUF0b21pYz4KaW5saW5lIHZvaWQgbGF1bmNoX2tlcm5lbF92YXJpYW50KGNvbnN0IGRpbTMmIGJsb2NrcywgY29uc3QgZGltMyYgdGhyZWFkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZwOCAqZF9BLCBjb25zdCBmcDggKmRfQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpkX0FzLCBjb25zdCBmbG9hdCAqZF9CcywgX19oaXBfYmZsb2F0MTYgKmRfQyxmbG9hdCpjX2F0b21pYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBNLCBpbnQgTiwgaW50IEspIHsKCiAgZGltMyB0aHJlYWRzQ2FzdCgyNTYpOwogIGRpbTMgYmxvY2tDYXN0KChNKk4gKyAoTipNLTEpKS8yNTYpOwoKICBoaXBMYXVuY2hLZXJuZWxHR0woKGN1c3RvbV9rZXJuZWw8S19TUExJVCwgYm91bmRDaGVjaywgdXNlQXRvbWljPiksIGJsb2NrcywgdGhyZWFkcywgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgZF9BLCBkX0IsIGRfQXMsIGRfQnMsIGRfQywgY19hdG9taWMsTSwgTiwgSyk7CiAgaWYgY29uc3RleHByICh1c2VBdG9taWMpewogICAgaGlwTGF1bmNoS2VybmVsR0dMKGNhc3Rfa2VybmVsLCBibG9ja0Nhc3QsdGhyZWFkc0Nhc3QsMCwwLGRfQyxjX2F0b21pYyxNLE4pOwogIH0KfQoKCnRlbXBsYXRlIDxpbnQgS19TUExJVD4KaW5saW5lIHZvaWQgZGlzcGF0Y2hfYm91bmRfYXRvbWljKGJvb2wgYm91bmRDaGVjaywgYm9vbCB1c2VBdG9taWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaW0zJiBibG9ja3MsIGNvbnN0IGRpbTMmIHRocmVhZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmcDggKmRfQSwgY29uc3QgZnA4ICpkX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqZF9BcywgY29uc3QgZmxvYXQgKmRfQnMsIF9faGlwX2JmbG9hdDE2ICpkX0MsZmxvYXQqY19hdG9taWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgTSwgaW50IE4sIGludCBLKSB7CiAgaWYgKGJvdW5kQ2hlY2spIHsKICAgIGlmICh1c2VBdG9taWMpewogICAgICBoaXBNZW1zZXRBc3luYyhjX2F0b21pYywgMCwgTipNICogc2l6ZW9mKGZsb2F0KSk7CiAgICAgIGxhdW5jaF9rZXJuZWxfdmFyaWFudDxLX1NQTElULCB0cnVlLCB0cnVlPihibG9ja3MsIHRocmVhZHMsIGRfQSwgZF9CLCBkX0FzLCBkX0JzLCBkX0MsY19hdG9taWMsIE0sIE4sIEspOwogICAgfSAKICAgIGVsc2V7CiAgICAgIGxhdW5jaF9rZXJuZWxfdmFyaWFudDxLX1NQTElULCB0cnVlLCBmYWxzZT4oYmxvY2tzLCB0aHJlYWRzLCBkX0EsIGRfQiwgZF9BcywgZF9CcywgZF9DLGNfYXRvbWljLCBNLCBOLCBLKTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKHVzZUF0b21pYyl7CiAgICAgIGhpcE1lbXNldEFzeW5jKGNfYXRvbWljLCAwLCBOKk0gKiBzaXplb2YoZmxvYXQpKTsKICAgICAgbGF1bmNoX2tlcm5lbF92YXJpYW50PEtfU1BMSVQsIGZhbHNlLCB0cnVlPihibG9ja3MsIHRocmVhZHMsIGRfQSwgZF9CLCBkX0FzLCBkX0JzLCBkX0MsY19hdG9taWMsIE0sIE4sIEspOwogICAgICB9CiAgICBlbHNlCiAgICAgIGxhdW5jaF9rZXJuZWxfdmFyaWFudDxLX1NQTElULCBmYWxzZSwgZmFsc2U+KGJsb2NrcywgdGhyZWFkcywgZF9BLCBkX0IsIGRfQXMsIGRfQnMsIGRfQyxjX2F0b21pYywgTSwgTiwgSyk7CiAgfQp9Cgp2b2lkIGxhdW5jaF9rZXJuZWwoY29uc3QgTGF1bmNoQ29uZmlnICZjb25maWcsIGNvbnN0IGZwOCAqZF9BLCBjb25zdCBmcDggKmRfQiwKICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpkX0FzLCBjb25zdCBmbG9hdCAqZF9CcywgX19oaXBfYmZsb2F0MTYgKmRfQyxmbG9hdCpjX2F0b21pYywKICAgICAgICAgICAgICAgICAgIGludCBNLCBpbnQgTiwgaW50IEspIHsKCiAgZGltMyB0aHJlYWRzUGVyQmxvY2soTl9XQVJQX1hfREVGICogTl9XQVJQX1lfREVGICogV0FSUF9TSVpFKTsKICBkaW0zIGJsb2Nrc1BlckdyaWQoKE0gKyBUSUxFX1NJWkVfWF9ERUYgLSAxKSAvIFRJTEVfU0laRV9YX0RFRiwKICAgICAgICAgICAgICAgICAgICAgKE4gKyBUSUxFX1NJWkVfWV9ERUYgLSAxKSAvIFRJTEVfU0laRV9ZX0RFRiwKICAgICAgICAgICAgICAgICAgICAgY29uZmlnLktfU1BMSVQpOwoKICBzd2l0Y2ggKGNvbmZpZy5LX1NQTElUKSB7CiAgICBjYXNlIDE6IGRpc3BhdGNoX2JvdW5kX2F0b21pYzwxPihjb25maWcuYm91bmRDaGVjaywgY29uZmlnLnVzZUF0b21pYywgYmxvY2tzUGVyR3JpZCwgdGhyZWFkc1BlckJsb2NrLCBkX0EsIGRfQiwgZF9BcywgZF9CcywgZF9DLGNfYXRvbWljLCBNLCBOLCBLKTsgYnJlYWs7CiAgICBjYXNlIDI6IGRpc3BhdGNoX2JvdW5kX2F0b21pYzwyPihjb25maWcuYm91bmRDaGVjaywgY29uZmlnLnVzZUF0b21pYywgYmxvY2tzUGVyR3JpZCwgdGhyZWFkc1BlckJsb2NrLCBkX0EsIGRfQiwgZF9BcywgZF9CcywgZF9DLGNfYXRvbWljLCBNLCBOLCBLKTsgYnJlYWs7CiAgICBjYXNlIDQ6IGRpc3BhdGNoX2JvdW5kX2F0b21pYzw0Pihjb25maWcuYm91bmRDaGVjaywgY29uZmlnLnVzZUF0b21pYywgYmxvY2tzUGVyR3JpZCwgdGhyZWFkc1BlckJsb2NrLCBkX0EsIGRfQiwgZF9BcywgZF9CcywgZF9DLGNfYXRvbWljLCBNLCBOLCBLKTsgYnJlYWs7CiAgICBjYXNlIDg6IGRpc3BhdGNoX2JvdW5kX2F0b21pYzw4Pihjb25maWcuYm91bmRDaGVjaywgY29uZmlnLnVzZUF0b21pYywgYmxvY2tzUGVyR3JpZCwgdGhyZWFkc1BlckJsb2NrLCBkX0EsIGRfQiwgZF9BcywgZF9CcywgZF9DLGNfYXRvbWljLCBNLCBOLCBLKTsgYnJlYWs7CiAgCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBzdGQ6OmludmFsaWRfYXJndW1lbnQoIlVuc3VwcG9ydGVkIEtfU1BMSVQgdmFsdWUiKTsKICB9Cn0KCnZvaWQgbGF1bmNoX2tlcm5lbChjb25zdCBmcDggKmRfQSwgY29uc3QgZnA4ICpkX0IsIGNvbnN0IGZsb2F0ICpkX0FzLAogICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKmRfQnMsIF9faGlwX2JmbG9hdDE2ICpkX0MsIGZsb2F0KmNfYXRvbWljLGludCBNLCBpbnQgTiwKICAgICAgICAgICAgICAgICAgIGludCBLKSB7CiAgTGF1bmNoQ29uZmlnIGNvbmZpZzsKICBjb25maWcudXNlQXRvbWljPWZhbHNlOwogIGNvbmZpZy5LX1NQTElUPTE7CiAgaWYgKE0gJSAxMjggPT0wICYmIE4gJTEyOCA9PTApCiAgICBjb25maWcuYm91bmRDaGVjayA9IGZhbHNlOwogIGVsc2UKICAgIGNvbmZpZy5ib3VuZENoZWNrID0gdHJ1ZTsKCiAgaWYgKChNID09IDEwMjQgJiYgIE49PTUxMiAmJiBLID09NzE2OCApIHx8CiAgICAgIChNID09IDEwMjQgJiYgIE49PTU3NiAmJiBLID09NzE2OCApKXsKICAgICAgICBjb25maWcudXNlQXRvbWljID0gdHJ1ZTsKICAgICAgICBjb25maWcuS19TUExJVCA9IDg7CiAgICAgIAogICAgICB9ZWxzZSBpZiAoTSA9PSAxMDI0ICYmICBOPT0xNTM2ICYmIEsgPT03MTY4ICl7CiAgICAgICAgY29uZmlnLnVzZUF0b21pYyA9IHRydWU7CiAgICAgICAgY29uZmlnLktfU1BMSVQgPSA0OwogICAgICB9CiAgICAgIGVsc2UgaWYgKE0gPT0gNjE0NCAmJiAgTj09NTEyICYmIEsgPT03MTY4ICl7CiAgICAgICAgY29uZmlnLnVzZUF0b21pYyA9IHRydWU7CiAgICAgICAgY29uZmlnLktfU1BMSVQgPSAyOwogICAgICB9CiAgbGF1bmNoX2tlcm5lbChjb25maWcsIGRfQSwgZF9CLCBkX0FzLCBkX0JzLCBkX0MsY19hdG9taWMsIE0sIE4sIEspOwp9CgoKCgojZGVmaW5lIEhJUF9DSEVDSyhjb25kaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgIGhpcEVycm9yX3QgZXJyb3IgPSBjb25kaXRpb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgIGlmKGVycm9yICE9IGhpcFN1Y2Nlc3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIkVycm9yICIgPDwgaGlwR2V0RXJyb3JOYW1lKGVycm9yKSA8PCAnKCcgPDwgZXJyb3IgPDwgJyknIDw8ICI6ICIgICAgQAogICAgICAgICAgICAgICAgICAgICAgPDwgaGlwR2V0RXJyb3JTdHJpbmcoZXJyb3IpIDw8ICIgaW4gIiA8PCBfX2Z1bmNfXyA8PCAiIGF0ICIgPDwgX19GSUxFX18gQAogICAgICAgICAgICAgICAgICAgICAgPDwgJzonIDw8IF9fTElORV9fIDw8ICdAbic7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgICAgICBleGl0KGVycm9yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAogICAgd2hpbGUoZmFsc2UpCgp2b2lkIHJ1bigKICAgIHVpbnRwdHJfdCBhX3B0ciwKICAgIHVpbnRwdHJfdCBiX3B0ciwKICAgIHVpbnRwdHJfdCBhc19wdHIsCiAgICB1aW50cHRyX3QgYnNfcHRyLAogICAgdWludHB0cl90IGNfcHRyLAogICAgaW50IE0sCiAgICBpbnQgTiwKICAgIGludCBLCikgewogICAgY29uc3QgYXV0byogZF9BID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBmcDgqPihhX3B0cik7CiAgICBjb25zdCBhdXRvKiBkX0IgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGZwOCo+KGJfcHRyKTsKICAgIGNvbnN0IGF1dG8qIGRfQXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0Kj4oYXNfcHRyKTsKICAgIGNvbnN0IGF1dG8qIGRfQnMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0Kj4oYnNfcHRyKTsKICAgIGF1dG8qIGRfQyA9IHJlaW50ZXJwcmV0X2Nhc3Q8X19oaXBfYmZsb2F0MTYqPihjX3B0cik7CgogICAgZGltMyB0aHJlYWRzUGVyQmxvY2soTl9XQVJQX1hfREVGICogTl9XQVJQX1lfREVGICogV0FSUF9TSVpFKTsKICAgIGRpbTMgYmxvY2tzUGVyR3JpZCgoTSArIFRJTEVfU0laRV9YX0RFRiAtIDEpIC8gVElMRV9TSVpFX1hfREVGLAogICAgICAgICAgICAgICAgICAgICAoTiArIFRJTEVfU0laRV9ZX0RFRiAtIDEpIC8gVElMRV9TSVpFX1lfREVGKTsKICAgIAogICAgc3RhdGljIGZsb2F0KiBkX2FycmF5ID0gbnVsbHB0cjsKICAgIGNvbnN0ZXhwciBpbnQgbl9tYXg9NzE2ODsKICAgIGNvbnN0ZXhwciBpbnQgbV9tYXg9NjE0NDsKICAgIGlmICghZF9hcnJheSkKICAgIHsKICAgICAgICBzaXplX3Qgc2l6ZSA9IG1fbWF4Km5fbWF4ICogc2l6ZW9mKGZsb2F0KTsKICAgICAgICBoaXBFcnJvcl90IGVyciA9IGhpcE1hbGxvYygmZF9hcnJheSwgc2l6ZSk7CiAgICB9CiAgICBsYXVuY2hfa2VybmVsKGRfQSwgZF9CLCBkX0FzLAogICAgICAgICAgICAgICAgICAgZF9CcyxkX0MsIGRfYXJyYXksIE0sIE4sIEspOyAKCiAgICBISVBfQ0hFQ0soaGlwR2V0TGFzdEVycm9yKCkpOwp9CgpQWUJJTkQxMV9NT0RVTEUoZnA4LCBtKSB7CiAgbS5kZWYoImZwOCIsICZydW4sICJISVAga2VybmVsIik7Cn0KIiIiCgpoaXBfbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSJmcDgiLAogICAgY3BwX3NvdXJjZXM9IiIsCiAgICBjdWRhX3NvdXJjZXM9a2VybmVsX2NwcC5yZXBsYWNlKCdAJywgY2hyKDkyKSksCiAgICB3aXRoX2N1ZGE9VHJ1ZSwKICAgIHZlcmJvc2U9RmFsc2UsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi1zdGQ9YysrMjAgLU8zIl0sCiAgICBub19pbXBsaWNpdF9oZWFkZXJzPVRydWUsCikKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgIiIiCiAgICBSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgYmxvY2stc2NhbGUgZnA4IGdlbW0KICAgIEFyZ3M6CiAgICAgICAgZGF0YTogVHVwbGUgdGhhdCBleHBhbmRzIHRvOgogICAgICAgICAgICBhOiB0b3JjaC5UZW5zb3JbZmxvYXQ4X2U0bTNmbnV6XSBvZiBzaGFwZSBbbSwga10sCiAgICAgICAgICAgIGI6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFtuLCBrXSwKICAgICAgICAgICAgYV9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFttLCBrIC8vIDEyOF0sCiAgICAgICAgICAgIGJfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbiAvLyAxMjgsIGsgLy8gMTI4XSwKICAgICAgICAgICAgYzogdG9yY2guVGVuc29yW2JmbG9hdDE2XSBvZiBzaGFwZSBbbSwgbl0KICAgIFJldHVybnM6CiAgICAgICAgVGVuc29yIGNvbnRhaW5pbmcgb3V0cHV0IGluIGJmMTYKICAgICIiIgoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCgogICAgbSwgbiA9IGMuc2hhcGUKICAgIGsgPSBhLnNoYXBlWzFdCgogICAgaGlwX21vZHVsZS5mcDgoCiAgICAgICAgYS5kYXRhX3B0cigpLAogICAgICAgIGIuZGF0YV9wdHIoKSwKICAgICAgICBhX3NjYWxlLmRhdGFfcHRyKCksCiAgICAgICAgYl9zY2FsZS5kYXRhX3B0cigpLAogICAgICAgIGMuZGF0YV9wdHIoKSwKICAgICAgICBtLAogICAgICAgIG4sCiAgICAgICAgawogICAgKQoKICAgIHJldHVybiBjSource code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Changes from previous submission
Against this author's previous submission submission 29876.
Best evidence level for this revision: reported
JSON