47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using FluentAssertions;
|
|
using PerfectNumbers.Core.Gpu;
|
|
using Xunit;
|
|
|
|
namespace PerfectNumbers.Core.Tests;
|
|
|
|
[Collection("GpuNtt")]
|
|
public class GpuKernelPoolTests
|
|
{
|
|
// [Fact]
|
|
// [Trait("Category", "Fast")]
|
|
// public void EnsureSmallCyclesOnDevice_returns_same_view_on_subsequent_calls()
|
|
// {
|
|
// GpuContextPool.GpuContextLease lease = GpuContextPool.RentPreferred(preferCpu: true);
|
|
// try
|
|
// {
|
|
// var accelerator = lease.Accelerator;
|
|
|
|
// var first = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator);
|
|
// var second = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator);
|
|
|
|
// second.Equals(first).Should().BeTrue();
|
|
// second.Length.Should().Be(MersenneDivisorCycles.SmallDivisorsMax + 1);
|
|
// }
|
|
// finally
|
|
// {
|
|
// lease.Dispose();
|
|
// }
|
|
// }
|
|
|
|
[Fact]
|
|
[Trait("Category", "Fast")]
|
|
public void Run_provides_accelerator_and_stream()
|
|
{
|
|
bool executed = false;
|
|
|
|
GpuKernelPool.Run((acc, stream) =>
|
|
{
|
|
acc.Should().NotBeNull();
|
|
stream.Should().NotBeNull();
|
|
executed = true;
|
|
});
|
|
|
|
executed.Should().BeTrue();
|
|
}
|
|
}
|