# {py:mod}`evox.triton_kernels.kernels.virtual_noise` ```{py:module} evox.triton_kernels.kernels.virtual_noise ``` ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_cpu_logical_rshift ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._cpu_logical_rshift :summary: ``` * - {py:obj}`_splitmix64_step ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._splitmix64_step :summary: ``` * - {py:obj}`_cpu_normal_noise ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._cpu_normal_noise :summary: ``` * - {py:obj}`compute_offsets ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.compute_offsets :summary: ``` * - {py:obj}`_virtual_perturbed_linear_fake ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_perturbed_linear_fake :summary: ``` * - {py:obj}`_virtual_weight_gradient_fake ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_weight_gradient_fake :summary: ``` * - {py:obj}`_virtual_bias_gradient_fake ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_bias_gradient_fake :summary: ``` * - {py:obj}`_virtual_reduce_metric_fake ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_reduce_metric_fake :summary: ``` * - {py:obj}`_choose_num_stages ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._choose_num_stages :summary: ``` * - {py:obj}`_triton_virtual_perturbed_linear ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_perturbed_linear :summary: ``` * - {py:obj}`_triton_virtual_weight_gradient ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_weight_gradient :summary: ``` * - {py:obj}`_triton_virtual_bias_gradient ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_bias_gradient :summary: ``` * - {py:obj}`_triton_virtual_reduce_metric ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_reduce_metric :summary: ``` * - {py:obj}`virtual_perturbed_linear ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_perturbed_linear :summary: ``` * - {py:obj}`virtual_weight_gradient ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_weight_gradient :summary: ``` * - {py:obj}`virtual_bias_gradient ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_bias_gradient :summary: ``` * - {py:obj}`virtual_reduce_metric ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_reduce_metric :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_SPLITMIX64_GAMMA ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA :summary: ``` * - {py:obj}`_SPLITMIX64_GAMMA_I64 ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA_I64 :summary: ``` * - {py:obj}`_MASK64 ` - ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._MASK64 :summary: ``` ```` ### API ````{py:data} _SPLITMIX64_GAMMA :canonical: evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA :value: > 11400714819323198485 ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA ``` ```` ````{py:data} _SPLITMIX64_GAMMA_I64 :canonical: evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA_I64 :value: > None ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._SPLITMIX64_GAMMA_I64 ``` ```` ````{py:data} _MASK64 :canonical: evox.triton_kernels.kernels.virtual_noise._MASK64 :value: > None ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._MASK64 ``` ```` ````{py:function} _cpu_logical_rshift(x: torch.Tensor, shift: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._cpu_logical_rshift ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._cpu_logical_rshift ``` ```` ````{py:function} _splitmix64_step(z: torch.Tensor) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._splitmix64_step ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._splitmix64_step ``` ```` ````{py:function} _cpu_normal_noise(seeds: torch.Tensor, n_elements: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._cpu_normal_noise ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._cpu_normal_noise ``` ```` ````{py:function} compute_offsets(param_shapes: list[tuple]) -> list[int] :canonical: evox.triton_kernels.kernels.virtual_noise.compute_offsets ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.compute_offsets ``` ```` ````{py:function} _virtual_perturbed_linear_fake(x: torch.Tensor, weight: torch.Tensor, bias, seeds: torch.Tensor, sigma: float, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._virtual_perturbed_linear_fake ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_perturbed_linear_fake ``` ```` ````{py:function} _virtual_weight_gradient_fake(fitness: torch.Tensor, seeds: torch.Tensor, weight_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._virtual_weight_gradient_fake ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_weight_gradient_fake ``` ```` ````{py:function} _virtual_bias_gradient_fake(fitness: torch.Tensor, seeds: torch.Tensor, bias_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._virtual_bias_gradient_fake ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_bias_gradient_fake ``` ```` ````{py:function} _virtual_reduce_metric_fake(center: torch.Tensor, seeds: torch.Tensor, sigma: float, n_params: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._virtual_reduce_metric_fake ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._virtual_reduce_metric_fake ``` ```` ````{py:function} _choose_num_stages(device: torch.device, per_stage_bytes: int, max_stages: int = 4) -> int :canonical: evox.triton_kernels.kernels.virtual_noise._choose_num_stages ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._choose_num_stages ``` ```` ````{py:function} _triton_virtual_perturbed_linear(x: torch.Tensor, weight: torch.Tensor, bias, seeds: torch.Tensor, sigma: float, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._triton_virtual_perturbed_linear ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_perturbed_linear ``` ```` ````{py:function} _triton_virtual_weight_gradient(fitness: torch.Tensor, seeds: torch.Tensor, weight_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._triton_virtual_weight_gradient ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_weight_gradient ``` ```` ````{py:function} _triton_virtual_bias_gradient(fitness: torch.Tensor, seeds: torch.Tensor, bias_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._triton_virtual_bias_gradient ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_bias_gradient ``` ```` ````{py:function} _triton_virtual_reduce_metric(center: torch.Tensor, seeds: torch.Tensor, sigma: float, n_params: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise._triton_virtual_reduce_metric ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise._triton_virtual_reduce_metric ``` ```` ````{py:function} virtual_perturbed_linear(x: torch.Tensor, weight: torch.Tensor, bias: typing.Optional[torch.Tensor], seeds: torch.Tensor, sigma: float, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise.virtual_perturbed_linear ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_perturbed_linear ``` ```` ````{py:function} virtual_weight_gradient(fitness: torch.Tensor, seeds: torch.Tensor, weight_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise.virtual_weight_gradient ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_weight_gradient ``` ```` ````{py:function} virtual_bias_gradient(fitness: torch.Tensor, seeds: torch.Tensor, bias_shape: list[int], sigma: float, pop_size: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise.virtual_bias_gradient ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_bias_gradient ``` ```` ````{py:function} virtual_reduce_metric(center: torch.Tensor, seeds: torch.Tensor, sigma: float, n_params: int, offset: int) -> torch.Tensor :canonical: evox.triton_kernels.kernels.virtual_noise.virtual_reduce_metric ```{autodoc2-docstring} evox.triton_kernels.kernels.virtual_noise.virtual_reduce_metric ``` ````