{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":767267425,"defaultBranch":"main","name":"stablehlo","ownerLogin":"jsonlee0x02","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-03-05T01:32:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/162089539?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1709602365.061939","currentOid":""},"activityList":{"items":[{"before":"c2fccec9f02daa2d709001ed5f37924d2526676f","after":"19e3142bc0a3e95b9e8201756ab9ebd6466bd407","ref":"refs/heads/main","pushedAt":"2024-04-18T01:19:33.000Z","pushType":"push","commitsCount":128,"pusher":{"login":"jsonlee0x02","name":"Json Lee","path":"/jsonlee0x02","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/162089539?s=80&v=4"},"commit":{"message":"Implement ConditionallySpeculatable for ConvolutionOp (#2228)\n\nRelevant constraints from the spec:\r\n\r\n```\r\n(C10) dim(lhs, input_batch_dimension) % batch_group_count = 0.\r\n(C11) dim(lhs, input_feature_dimension) % feature_group_count = 0.\r\n\r\n(C14) dim(rhs, kernel_input_feature_dimension) = dim(lhs, input_feature_dimension) / feature_group_count.\r\n(C15) dim(rhs, kernel_output_feature_dimension) % batch_group_count = 0.\r\n(C16) dim(rhs, kernel_output_feature_dimension) % feature_group_count = 0.\r\n\r\n(C25) dim(result, result_dim) is defined as:\r\n* dim(lhs, input_batch_dimension) / batch_group_count if result_dim = output_batch_dimension.\r\n* dim(rhs, kernel_output_feature_dimension) if result_dim = output_feature_dimension.\r\n* num_windows otherwise, where:\r\n* output_spatial_dimensions[spatial_dim] = result_dim.\r\n* lhs_dim = input_spatial_dimensions[spatial_dim].\r\n* rhs_dim = kernel_spatial_dimensions[spatial_dim].\r\n* dilated_input_shape[lhs_dim] = dim(lhs, lhs_dim) = 0 ? 0 : (dim(lhs, lhs_dim) - 1) * lhs_dilation[spatial_dim] + 1.\r\n* padded_input_shape[lhs_dim] = padding[spatial_dim, 0] + dilated_input_shape[lhs_dim] + padding[spatial_dim, 1].\r\n* dilated_window_shape[lhs_dim] = dim(rhs, rhs_dim) = 0 ? 0 : (dim(rhs, rhs_dim) - 1) * rhs_dilation[spatial_dim] + 1.\r\n* is_empty_window[lhs_dim] = padded_input_shape[lhs_dim] = 0 || dilated_window_shape[lhs_dim] > padded_input_shape[lhs_dim].\r\n* num_windows = is_empty_window[lhs_dim] ? 0 : floor((padded_input_shape[lhs_dim] - dilated_window_shape[lhs_dim]) / window_strides[spatial_dim]) + 1.\r\n```\r\n\r\nBecause of (C14), input_feature_dimension and\r\nkernel_input_feature_dimension must be static. input_batch_dimension\r\nmust be static if batch_group_count > 1 (C10) or if\r\noutput_batch_dimension is static (C25, first bullet).\r\nkernel_output_feature_dimension must be static if batch_group_count > 1\r\n(C15) or feature_group_count > 1 (C16) or if output_feature_dimension is\r\nstatic (C25, second bullet).\r\n\r\nBecause of (C25), each spatial dimension in the output can depend on the\r\nspatial dimensions in the inputs (input + kernel), so if it is static in\r\nthe output, it must be static in the inputs, otherwise mismatches could\r\noccur at runtime.","shortMessageHtmlLink":"Implement ConditionallySpeculatable for ConvolutionOp (openxla#2228)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0xOFQwMToxOTozMy4wMDAwMDBazwAAAAQzpS52","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0xOFQwMToxOTozMy4wMDAwMDBazwAAAAQzpS52","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0xOFQwMToxOTozMy4wMDAwMDBazwAAAAQzpS52"}},"title":"Activity ยท jsonlee0x02/stablehlo"}