Compare commits

..

8 Commits

5 changed files with 30 additions and 12382882 deletions

11
main.go
View File

@@ -20,8 +20,8 @@ type Config struct {
UseTxtWrite bool
}
func calculateProgress(start, end, step, index int64) float32 {
steps := (end - start) / step
func calculateProgress(start, end, index int64) float32 {
steps := (end - start)
current := index - start
if current == 0 {
return 0
@@ -103,9 +103,10 @@ func generatePrimesCPU(upperLimit int64, primes []int64, numRoutines int, progre
fmt.Printf("Calculating with %d routines\n\n", numRoutines)
for i := (primes[len(primes) - 1] + 2); i <= upperLimit; i += 2 {
continueFrom := primes[len(primes) - 1] + 2
for i := continueFrom; i <= upperLimit; i += 2 {
select {
case progress <- calculateProgress(6, upperLimit, 1, i):
case progress <- calculateProgress(continueFrom, upperLimit, i):
default:
}
@@ -147,7 +148,7 @@ func calculatePrimeParts(number int64, primes []int64) []int64 {
for i := int64(len(primes) - 1); i >= 0; i-- {
select {
case progress <- 1.0 - calculateProgress(0, int64(len(primes) - 1), 1, i):
case progress <- 1.0 - calculateProgress(0, int64(len(primes) - 1), i):
default:
}
flooredDiv := number / primes[i]

21
main_test.go Normal file
View File

@@ -0,0 +1,21 @@
package main
import "testing"
func testGeneratePrimes(upperLimit int64, useTensors bool, b *testing.B) {
var config Config
config.DontLoad = true
config.UseTensors = useTensors
for i := 0; i < b.N; i++ {
generatePrimes(upperLimit, config)
}
}
func BenchmarkPrimes1000CPU(b *testing.B) {
testGeneratePrimes(1000, false, b)
}
func BenchmarkPrimes1000GPU(b *testing.B) {
testGeneratePrimes(1000, true, b)
}

BIN
prime.msgpack.zst Normal file

Binary file not shown.

12382875
prime.txt

File diff suppressed because it is too large Load Diff

View File

@@ -26,9 +26,10 @@ func generatePrimesGPU(upperLimit int64, primes []int64, progress chan float32)
fmt.Printf("Calculating with tensorflow\n\n")
for i := (primes[len(primes) - 1] + 2); i <= upperLimit; i += 2 {
continueFrom := primes[len(primes) - 1] + 2
for i := continueFrom; i <= upperLimit; i += 2 {
select {
case progress <- calculateProgress(6, upperLimit, 1, i):
case progress <- calculateProgress(continueFrom, upperLimit, i):
default:
}