{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/slalom-fast-verifiable-and-private-execution","title":"Slalom: Fast, Verifiable and Private Execution of Neural Networks in Trusted Hardware","arxiv_id":"1806.03287","date":"2018-06-08","proceeding":"ICLR 2019 5","authors":["Florian Tramèr","Dan Boneh"],"abstract":"As Machine Learning (ML) gets applied to security-critical or sensitive\ndomains, there is a growing need for integrity and privacy for outsourced ML\ncomputations. A pragmatic solution comes from Trusted Execution Environments\n(TEEs), which use hardware and software protections to isolate sensitive\ncomputations from the untrusted software stack. However, these isolation\nguarantees come at a price in performance, compared to untrusted alternatives.\nThis paper initiates the study of high performance execution of Deep Neural\nNetworks (DNNs) in TEEs by efficiently partitioning DNN computations between\ntrusted and untrusted devices. Building upon an efficient outsourcing scheme\nfor matrix multiplication, we propose Slalom, a framework that securely\ndelegates execution of all linear layers in a DNN from a TEE (e.g., Intel SGX\nor Sanctum) to a faster, yet untrusted, co-located processor. We evaluate\nSlalom by running DNNs in an Intel SGX enclave, which selectively delegates\nwork to an untrusted GPU. For canonical DNNs (VGG16, MobileNet and ResNet\nvariants) we obtain 6x to 20x increases in throughput for verifiable inference,\nand 4x to 11x for verifiable and private inference.","url_abs":"http://arxiv.org/abs/1806.03287v2","url_pdf":"http://arxiv.org/pdf/1806.03287v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"slalom-fast-verifiable-and-private-execution","repo_url":"https://github.com/ftramer/slalom","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"GPU"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1806.03287","atlas_url":"https://app.syntology.ai/?focus=1806.03287","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1806.03287"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ftramer/slalom","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":15},"by_repo_kind":{"official":{"samples":15,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"e82919ec054e8a8b","entry":"apply_with_random_selector","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/inception_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/inception_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e82919ec054e8a8b"}},{"code_sha256_prefix":"1f8b213998b7f612","entry":"conv_block","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/resnet.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f8b213998b7f612"}},{"code_sha256_prefix":"7d9923a3d6958b99","entry":"distort_color","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/inception_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/inception_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7d9923a3d6958b99"}},{"code_sha256_prefix":"f1bd3b4c3f92fe63","entry":"distorted_bounding_box_crop","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/inception_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/inception_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f1bd3b4c3f92fe63"}},{"code_sha256_prefix":"93b77082971aa931","entry":"get_topk_acc","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/utils.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"93b77082971aa931"}},{"code_sha256_prefix":"9dd7bc39a7aa04ea","entry":"identity_block","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/resnet.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/resnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9dd7bc39a7aa04ea"}},{"code_sha256_prefix":"a20066212a0e7e85","entry":"log2","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/quant_layers.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/quant_layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a20066212a0e7e85"}},{"code_sha256_prefix":"ef3e4ee2d57fea02","entry":"preproc","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/models.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ef3e4ee2d57fea02"}},{"code_sha256_prefix":"0d0120e2b5dcdf5c","entry":"preproc_tf","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/models.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0d0120e2b5dcdf5c"}},{"code_sha256_prefix":"8dd44485a0d07e53","entry":"preprocess_for_eval","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/cifarnet_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/cifarnet_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8dd44485a0d07e53"}},{"code_sha256_prefix":"a7e384fd44f9fdc9","entry":"preprocess_for_train","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/cifarnet_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/cifarnet_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a7e384fd44f9fdc9"}},{"code_sha256_prefix":"6c265d4a08d5f4d4","entry":"preprocess_image","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/cifarnet_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/cifarnet_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6c265d4a08d5f4d4"}},{"code_sha256_prefix":"5329cb0ae570d122","entry":"preprocess_image","repo":"ftramer/slalom","repo_kind":"official","path":"python/preprocessing/lenet_preprocessing.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/preprocessing/lenet_preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5329cb0ae570d122"}},{"code_sha256_prefix":"de695392eae44227","entry":"preprocess_input","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/mobilenet_sep.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/mobilenet_sep.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"de695392eae44227"}},{"code_sha256_prefix":"2298663a26889386","entry":"size_to_mb","repo":"ftramer/slalom","repo_kind":"official","path":"python/slalom/utils.py","file_url":"https://github.com/ftramer/slalom/blob/HEAD/python/slalom/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2298663a26889386"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}