The model sometimes opens a DSML stanza without closing first. * The server's forward recovery must force the close plus a fresh stanza * opening, after which the model must still complete a valid call. The * malformed prefix is teacher-forced so the regression is deterministic and * does not depend on coaxing the model into misbehaving. */
| 1821 | ds4_gpu_tensor *direct_state_score = ds4_gpu_tensor_alloc(state_bytes); |
| 1822 | float *kv_host = malloc((size_t)input_bytes); |
| 1823 | float *sc_host = malloc((size_t)input_bytes); |
| 1824 | float *source_after_host = malloc((size_t)input_bytes); |
| 1825 | float *state_kv_host = malloc((size_t)state_bytes); |
| 1826 | float *state_score_host = malloc((size_t)state_bytes); |
| 1827 | float *ref_comp_host = malloc((size_t)comp_bytes); |
| 1828 | float *direct_comp_host = malloc((size_t)comp_bytes); |
| 1829 | float *ref_state_kv_host = malloc((size_t)state_bytes); |
| 1830 | float *direct_state_kv_host = malloc((size_t)state_bytes); |
| 1831 | float *ref_state_score_host = malloc((size_t)state_bytes); |
| 1832 | float *direct_state_score_host = malloc((size_t)state_bytes); |
| 1833 | void *model_raw = NULL; |
| 1834 | TEST_ASSERT(posix_memalign( |
| 1835 | &model_raw, (size_t)page, (size_t)model_bytes) == 0); |
| 1836 | |
| 1837 | TEST_ASSERT(kv != NULL); |
| 1838 | TEST_ASSERT(sc != NULL); |
| 1839 | TEST_ASSERT(ref_comp != NULL); |
| 1840 | TEST_ASSERT(direct_comp != NULL); |
| 1841 | TEST_ASSERT(ref_state_kv != NULL); |
| 1842 | TEST_ASSERT(ref_state_score != NULL); |
| 1843 | TEST_ASSERT(direct_state_kv != NULL); |
| 1844 | TEST_ASSERT(direct_state_score != NULL); |
| 1845 | TEST_ASSERT(kv_host != NULL); |
| 1846 | TEST_ASSERT(sc_host != NULL); |
| 1847 | TEST_ASSERT(source_after_host != NULL); |
| 1848 | TEST_ASSERT(state_kv_host != NULL); |
| 1849 | TEST_ASSERT(state_score_host != NULL); |
| 1850 | TEST_ASSERT(ref_comp_host != NULL); |
| 1851 | TEST_ASSERT(direct_comp_host != NULL); |
| 1852 | TEST_ASSERT(ref_state_kv_host != NULL); |
| 1853 | TEST_ASSERT(direct_state_kv_host != NULL); |
| 1854 | TEST_ASSERT(ref_state_score_host != NULL); |
| 1855 | TEST_ASSERT(direct_state_score_host != NULL); |
| 1856 | TEST_ASSERT(model_raw != NULL); |
| 1857 | |
| 1858 | const char *ape_disable_env = "DS4_METAL_DISABLE_COMPRESSOR_APE_ADD"; |
| 1859 | const char *pack_disable_env = |
| 1860 | "DS4_METAL_DISABLE_COMPRESSOR_RATIO4_PACK_FUSION"; |
| 1861 | const char *direct_disable_env = |
| 1862 | "DS4_METAL_DISABLE_COMPRESSOR_RATIO4_DIRECT_POOL"; |
| 1863 | char *saved_ape_disable = test_save_env(ape_disable_env); |
| 1864 | char *saved_pack_disable = test_save_env(pack_disable_env); |
| 1865 | char *saved_direct_disable = test_save_env(direct_disable_env); |
| 1866 | test_float_compare_stats comp_stats = {0}; |
| 1867 | test_float_compare_stats state_kv_stats = {0}; |
| 1868 | test_float_compare_stats state_score_stats = {0}; |
| 1869 | |
| 1870 | const bool allocated = kv && sc && ref_comp && direct_comp && |
| 1871 | ref_state_kv && ref_state_score && direct_state_kv && |
| 1872 | direct_state_score && kv_host && sc_host && source_after_host && |
| 1873 | state_kv_host && state_score_host && ref_comp_host && |
| 1874 | direct_comp_host && ref_state_kv_host && direct_state_kv_host && |
| 1875 | ref_state_score_host && direct_state_score_host && model_raw; |
| 1876 | if (allocated) { |
| 1877 | memset(model_raw, 0, (size_t)model_bytes); |
| 1878 | if (ape_type == 1u) { |
| 1879 | uint16_t *ape = model_raw; |
| 1880 | for (uint64_t i = 0; i < (uint64_t)ratio * width; i++) { |
nothing calls this directly
no test coverage detected